python采集用到的库
优采云 发布时间: 2020-08-27 07:09python采集用到的库
python爬虫采集
最近有个项目须要采集一些网站网页,以前都是用php来做,但如今非常流行用python做采集,研究了一些做一下记录。
采集数据的根本是要获取一个网页的内容,再依照内容筛选出须要的数据,
python的用处是速率快,支持多线程,高并发,可以拿来大量采集数据,缺点就是和php相比,python的轮子和代码库其实没有php全,而且python的安装稍为麻烦了点,折腾了很久。
python3的安装见联接:
工具编辑器:
PyCharm :一款挺好用的python专用编辑器,可以编译和运行,支持windows
python采集用到的库:
requests:用来获取网页的内容,支持https,用户登入信息等,很强悍
lxml:用来解析采集的html内容,十分好用,比较灵活,但好多用法不好找,api文档不好找。
pymysql:连接操作mysql,这个就不用说了,将采集到的信息存到数据库。
基本上这三个就可以支持采集网页
安装代码:
用pip安装调用代码:
pip install pymysql
pip install requests
pip install lxml
采集数据:
采集的代码和复印的结果:
# coding=utf-8 #设置页码编码,解决中文乱码<br />import re<br />import pymysql<br />import requests<br />from mydb import *<br />from lxml import etree<br />#模拟浏览器访问<br />headers = {<br /> 'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'<br />}<br />#requests获取网页<br />respose = requests.get('https://www.cnblogs.com/mengzhilva/', headers=headers)<br />content = respose.text #获取内容<br />html = etree.HTML(content) #用lxml格式化<br />result = etree.tostring(html, encoding='utf-8') # 解析对象输出代码<br />titles = html.xpath('//div[@class="day"]//div[@class="postTitle"]//a/text()') #查找相应数据<br />url = html.xpath('//div[@class="day"]//div[@class="postTitle"]//a/@href') #查找相应数据<br />print(titles)<br />print(url)<br />i=1<br />for val in titles:<br /> url = html.xpath('//div[@class="day"][' + format(i) + ']//div[@class="postTitle"]//a/@href') # 根据循环查找列表地址<br /> print(val)<br /> print(url)<br /> #这里可以调用单独的函数来抓取详情页内容<br /> i+=1