前面爬完了糗事百科,接下来看看百度贴吧。
可是光光获取评论文字也是忒无聊了,咱们来点图片。
然鹅,找哪儿的图好吶,翻来覆去,一个偶然的机会,让我看到了这个:
机智的我灵机一动,为什么创建这个“旅行吧”呀,从事物发展的规律来说,就是方便大伙儿各种晒图各种秀啊
能拿来晒的东西,敢情应该不会差到哪去(至少比一般的百度图片要好一些吧)
好了不多胡扯回归正题,几行代码,带足不出户的你,走遍万水千山!
先随便搜了个贴,好吧就是这个了
开发环境和之前一样。
一、目标:
1、获取帖子标题、总页数、评论、图片
2、图片写入文件并保存
3、将各种信息实现打印(也算测试追踪)
4、输入帖子号便能实现以上操作(即亦适用于其它帖子)
二、步骤:
1、获取源码。这个简单,用requests的get请求方式即可。这里设置了random.randint()获取随机数,在一堆范围中获取user_agent,主要是为了伪装防止网站认出是爬虫而限制抓取。至于这一堆user_agents,额,网上搜的哈哈~
def getSource(self,url):
user_agents=['Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130406 Firefox/23.0','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0','Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533+ \(KHTML, like Gecko) Element Browser 5.0','IBM WebExplorer /v0.94', 'Galaxy/1.0 [en] (Mac OS X 10.5.6; U; en)','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)','Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14','Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) \Version/6.0 Mobile/10A5355d Safari/8536.25','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) \Chrome/28.0.1468.0 Safari/537.36','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; TheWorld)'
index=random.randint(0,9)
user_agent=user_agents[index]
headers = {'User_agent': user_agent}
html=requests.get(url,headers=headers)
return html.text
2、获取标题、总页数、评论
标题的正则
pattern=re.compile('<h1.*?title.*?>(.*?)</h1>',re.S)
items=re.search(pattern,result)
页数的正则