python爬虫
一、什么是爬虫?
网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
二、爬虫的学习路线
1.首先学习python的基本语法知识
2.学习python爬虫常用到的几个重要内置库urllib,http等,用于下载网页
3.学习正则表达式,Beautiful Soup(bs4),Xpath(lxml)等网页解析工具
4.开始一些简单的网页爬取,了解爬取数据过程
5.了解爬虫的一些反爬机制,header,robot,时间间隔,代理ip,隐含字段
6.了解一些特殊网站的爬取,解决登陆,Cookie,动态网页等问题
7.了解爬虫与数据库的结合,如何将爬取数据进行储存
8.学习应用python的多线程、多进程进行爬取,提高爬虫效率
9.学习爬虫的框架,Scrapy等
10.学习分布式爬虫(数量量庞大的需求)
三、urllib库
python内置一个urllib库,这个内置库的使用可以完成向服务器发出请求并后的网页的功能
>>importurllib
>>dir(urllib)
['__builtins__','__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__','__path__', '__spec__', 'error', 'parse', 'request', 'response']
request的使用
1.request请求最简单的操作是用urlopen方法,代码如下:
import urllib.request
response = urllib.request.urlopen('http://python.org/')
result=response.read().decode('utf-8')
print(result)
四、xPath介绍
xPath即为XML语言,它是一种用来确定XML(标准通用对的标记语言的子集)文档中某部分位置的语言。Xpath基于XML的树状结构,有不同类型的节点,包括元素节点,提供的数据结构中找寻节点的能力
1.获取某个标签的内容,获取a标签的所有内容
写法一:
html = etree.HTML(wb_data)
html_data = html.xpath('/html/body/div/ul/li/a')
print(html)
for i in html_data:
print(i.text)
结果
<Element html at 0x12fe4b8>
first item
second item
third item
fourth item
fifth item
写法二:
html = etree.HTML(wb_data)
html_data = html.xpath('/html/body/div/ul/li/a/text()')
print(html)
for i in html_data:
print(i)
结果:
<Element html at 0x138e4b8>
first item
second item
third item
fourth item
fifth item
2.打开读取HTML文件
#使用parse打开html的文件
html = etree.parse('test.html')
html_data = html.xpath('//*')<br>#打印是一个列表,需要遍历
print(html_data)
for i in html_data:
print(i.text)