python小爬虫-糗百

在家没事本来想弄一下pyqt,做一些python下的界面,但是eric装了半天没成功……于是改做爬虫(:3[__]
还好网上教程多,参考了一下,大致的框架都比较简单,难的在于针对不同的网页如何写正则表达式。不过这东西写多了应该就掌握方法了。从网上找了一段代码是爬糗百的,由于改版原来的表达式失效了,正好有了一个锻炼的机会。以下是代码:


代码

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

page = 1
url = 'http://www.qiushibaike.com/hot/page/' + str(page)
user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
# 需要加上headers才能访问
headers={'User-Agent' : user_agent}
try:
    request = urllib2.Request(url,headers=headers)
    response = urllib2.urlopen(request)
except urllib2.URLError, e:
    if hasattr(e,"code"):
        print e.code
    if hasattr(e,"reason"):
        print e.reason

content = response.read().decode('utf-8')
# 正则表达式
target = 'div.*?="author clearfix".*?title="(.*?)".*?div.*?="content".*?<span>(.*?)</span>.*?</a>.*?<img src="(.*?)".*?</div>'
pattern = re.compile(target,re.S)
items = re.findall(pattern,content)
print "done"
num=1;
lenth=len(items);
for item in items: 
    # 判断是否存在图片
    haveImg = re.search("pic.qiushibaike.com/system/pictures",item[2])
    print str(num),'of',str(lenth)
    print item[0] # 用户名
    print item[1] # 内容
    if haveImg:
        print item[2] # 输出图片链接
    num+=1;

效果

原始网页:
QSBK
代码与结果:
result


总结

这算是比较简单的抓取,不用登陆就可以了,之后再学学困难的。

Python爬虫实战一之爬取糗事百科段子

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值