Python网络爬虫与信息提取的示例分析
这篇文章主要介绍了Python网络爬虫与信息提取的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1.学习Python网络爬虫与信息提取,必须会一门编程语言和懂得一些网络相关知识,最好会Python语言;
2.Python网络爬虫讲解是建立在:
a、Requests框架:自动爬取HTML页面与自动网络请求提交
b、robots.txt:网络爬虫排除标准
c、BeautifulSoup框架:解析HTML页面
d、Re框架:正则框架,提取页面关键信息
e、Scrapy框架:网络爬虫原理介绍,专业爬虫框架介绍
等基础上的;
3. Requests的基础使用
注:Requests库是目前公认的爬取网页最好的Python第三方库,具有简单、简捷的特点。
官方网站:http://www.python-requests.org
在"C:\Windows\System32"中找到"cmd.exe",使用管理员身份运行,在命令行中输入:"pip install requests"运行。
使用IDLE测试Requests库:
>>> import requests
>>> r = requests.get("http://www.baidu.com")#比如抓取百度页面
>>> r.status_code
>>> r.encoding = 'utf-8'
>>> r.text
Requests库的7个主要方法
方法 | 说明 |
---|---|
requests. request() | 构造一个请求,支撑一下各方法的基础方法 |
requests.get() | 获取HTML网页的主要方法,对应HTTP的GET |
requests.head() | 获取HTML网页头的信息方法,对应HTTP的HEAD |
requests.post() | 向HTML网页提交POST请求方法,对应HTTP的POST |
requests.put() | 向HTML网页提交PUT请求的方法,对应HTTP的RUT |
requests.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH |
requests.delete() | 向HTML页面提交删除请求,对应HTTP的DELETE |
get()方法详解:
r = requests.get(url)
get()方法构造一个向服务器请求资源的Request对象,返回一个包含服务器资源的Response对象。
requests.get(url, params=None, **kwargs)
url:拟获取页面的url链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问参数
Requests库的2个重要对象
· Request
· Response:Response对象包含爬虫返回的内容
Response对象的属性
1. r.status_code :HTTP请求的返回状态,200表示连接成功,404表示失败
2. r.text :HTTP响应内容的字符串形式,即,url对应的页面内容
3. r.encoding : 从HTTP header中猜测的相应内容编码方式
4. r.apparent_encoding : 从内容中分析出的相应内容编码方式(备选编码方式)
5. r.content : HTTP响应内容的二进制形式
6. r.encoding :如果header中不存在charset,则认为编码为ISO-8859-1 。
7. r.apparent_encoding :根据网页内容分析出的编码方式可以 看作是r.encoding的备选。
Response的编码:
8. r.encoding : 从HTTP header中猜测的响应内容的编码方式;如果header中不存在charset,则认为编码为ISO-8859-1,r.text根据r.encoding显示网页内容
9.r.apparent_encoding : 根据网页内容分析出的编码方式,可以看作r.encoding的备选
10.r.raise_for_status() : 如果不是200,产生异常requests.HTTPError;
4.Robots协议
Robots Exclusion Standard 网络爬虫排除标准
作用:网站告知网络爬虫哪些页面可以抓取,哪些不行。
形式:在网站根目录下的robots.txt文件。
例如:
# 注释:*代表所有,/代表根目录
User-agent: *
Disallow: /?*
Disallow: /pop/*.html
Disallow: /pinpai/*.html?*
User-agent: EtaoSpider
Disallow: /
User-agent: HuihuiSpider
Disallow: /
User-agent: GwdangSpider
Disallow: /
User-agent: WochachaSpider
Disallow: /
注:Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险。
实例:
import requests
url = "https://item.jd.com/5145492.html"
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[:1000])
except:
print("爬取失败")
感谢你能够认真阅读完这篇文章,希望小编分享的"Python网络爬虫与信息提取的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!