您的位置:首页 > 编程语言

编写爬取糗事百科信息爬虫代码学习笔记

2018-01-26 21:02 141 查看
前言

    学习python3已经有一段时间了,本着趁自己还记得学过什么的原则,特意把这段时间所学所悟记录下来。就从利用python3编写糗事百科爬虫开始写起,在此感谢静觅博主的python爬虫学习系列教程,指引我学习编写。本文也是根据其python2.x的教程再加上个人对python3学习的理解也写。



一、

    就本人目前学习进度而言,编写爬虫代码需要import三个模块。值得一提的是python3与python2有比较大的区别,一部分体现在模块上(这个我以后也会另开一贴作为学习记录,比较两个版本之间出现变化的地方)。现在先就要用到的模块或者方法出现的变化作比较

python3python2
urllib.requesturllib2
  
  
二、

    直接贴上关键代码

#抓取嗅事百科(一页内容)
import urllib
import urllib.request
import re
page = 1
url = r'https://www.qiushibaike.com/hot/page'+str(page)
user_agent = 'Mozilla/4.0(compatible;MSIE 5.5; Windows NT)'
headers = {'User-Agent':user_agent}
try:
request = urllib.request.Request(url,headers=headers)
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')
pattern = re.compile(r'h2>(.*?)</h.*?<div.*?<span>(.*?)</.*?>',re.S|re.M)
items = re.findall(pattern,content)
pageLibrary=[]
for item in items:
pageLibrary.append([item[0].strip(),item[1].strip()])
print(item[0].strip(),item[1].strip())
#print(pageLibrary)
except urllib.request.URLError as e:
if hasattr(e,'code'):
print(e.code)
if hasattr(e,'reason'):
print(e.reason)

     大体思路:
           1.分析目标网页url需要的元素

           2.确定是否需要编写headers骗取服务器

           3.爬取一整页内容(使用request,response)

           4.编写正则表达式(关键)

               在此推荐大家两个网站deerchao的正则表达式30分钟入门教程正则表达式在线测试工具-站长工具
一个用于学习,一个用于对自己编写的正则进行测试



三、

     第一次认真写博客,其实也不知道自己写什么好,就先写到这么多吧,以后想到什么再更新,keep coding !

       完整代码上传到了github:https://github.com/callMeBin2217/python3_Spider ,有兴趣的可以下载来看看,或者和我交流也可以。小小小小小小白求轻喷...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐