新手学习python ,遇到一个问题,求助

zhaozm 发布于 2016/06/07 11:40
阅读 298
收藏 0

练习写爬虫,这个页面的图片路径爬不下来了,其他页面倒是能爬取下来,求大神指教,代码如下:

#-*- coding: utf-8 -*-
import urllib2
import re

def html_get(url):
     #获取网页内容
     user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 QIHU 360EE'
     headers = {'User-Agent':user_agent}
     req = urllib2.Request(url,headers = headers)
     response = urllib2.urlopen(req)
     html = response.read()
     return html

if __name__ == '__main__':
    content_url = 'http://tieba.baidu.com/p/3428007979?pn=2'
    content_page_html = html_get(content_url)
    print content_page_html
    pattern = re.compile(r'<img.*?class="BDE_Image".*?src="(.*?)".*?pic_ext="jpeg".*?',re.S)#获取图片路径
    images_url = pattern.findall(content_page_html)
    print(images_url)

加载中
0
一碗粥
一碗粥
自己写正则比较麻烦, 分析xml, html, xhtml等, 最好用xpath.
z
zhaozm
谢谢! xpath还不会用呢
0
让往事随风
让往事随风
参考资料:Python项目实训——网络爬虫:http://edu.51cto.com/course/course_id-581.html
0
luoyuCode
luoyuCode
将你正则表达式中的.*?直接写成空格,就可以了!
z
zhaozm
回复 @luoyuCode : 好的,多谢了
luoyuCode
luoyuCode
回复 @zhaozm : 你可以将这一jpeg的链接放在正则测试工具里,用你的正则表达式“.*?”测试一下,看看具体原因出在哪里
luoyuCode
luoyuCode
回复 @zhaozm : 我认为用正则表达式的最基本的原则是在表达式中能不用正则的就不用,避免产生不必要的正则问题。
z
zhaozm
我不明白为什么第一页的内容可以爬下来,第二页就不行了,把.*?写成空格就都可以了
z
zhaozm
确实管用!谢谢
返回顶部
顶部