1.基本的爬虫工作原理
①)网络爬虫定义,又称Web Spider,网页蜘蛛,按照一定的规则,自动抓取网站信息的程序或者脚本。
蜘蛛通过网页的链接地址来寻找网页,从网站某一个页面开始,读取网页的内容,找到网页中的其他链接地址,
然后通过这些链接地址寻找下一个网页,直到把这个额昂展所有的网页都抓取完为止。
②)爬虫流程:
①urllib的request打开url带到网页的html文档
②浏览器打开网页源代码分析元素节点
③通过Beautiful Soup或者正则表达式提取想要的数据
④存储数据到本地磁盘或者数据库,进行数据分析
2.环境、工具安装
①Python 3.6.4(官网下载安装),环境变量配置
②基本的http抓取工具 scrapy (安装命令pip install scrapy)
③bs4 (安装命令:pip install scrapy)
3.爬虫脚本及注释(超简易)
①
#urllib的request模块可以非常方便的抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应。
from urllib import request
②
# BeautifulSoup是Python的一个库,最主要的功能是从网页爬取我们所需要的数据。
# BeautifulSoup将html解析为对象进行处理,全部页面转变为字典或者数组,相对于正则表达式的方式,可以大大简化处理过程。
from bs4 import BeautifulSoup
③
#构造头文件,模拟浏览器访问。
url="http://www.jianshu.com" #要爬的url
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
page=request.Request(url,headers=headers)
page_info=request.urlopen(page).read().decode('utf-8') #打开url,获取HttpResponse返回对象并读取ResponseBody
④
#将获取到response析成Beautiful soup格式,解析器为html.parser
soup=BeautifulSoup(page_info,'html.parser')
⑤
#查找所有a标签中class='title'的语句
titles=soup.find_all('a','title')
⑥
#open()是读写文件的函数,with语句会自动close()已打开文件
with open(r"D:lgzarticles.txt","w")as file: #在磁盘以只写的方式打开/创建一个名为 articles 的txt文件
for title in titles:
file.write(title.string+'
')
file.write("http://www.jianshu.com"+title.get('href')+'\n
')
4.爬虫结果