凡是过往,皆为序章

0%

Python爬虫_02(requests库实例)

这部分是爬虫初步的 爬取实例 ,涉及网站、搜索、图片等查询。


网络爬虫

Robots协议

作用:网站告知网络爬虫哪些页面可以抓取,哪些不行。

形式:在网站根目录下的robots.txt文件

基本语法:

1
2
3
# 注释,*代表所有,/代表根目录 
User‐agent: *
Disallow: /

百度robots协议查看:https://www.baidu.com/robots.txt

案例

1、爬取亚马逊商品信息

在我们用简单的get方法爬取时,获取状态码显示503

返回的 r 中包含 request 请求。

通过r.request.headers查看头部信息,看到User-Agent选项不是浏览器的信息,可以得知亚马逊会组织非浏览器的访问。

方法:更改头部信息,使该爬虫模拟浏览器登录。

1
2
3
kv = {'user-agent':'Mozilla/5.0'}
url = "https://www.amazon.cn/gp/product/B01M8L5Z3Y"
r = requests.get(url, headers = kv)

此时即可正常爬取。

2、爬虫指定关键字到百度查询结果

百度的关键词接口:

1
http://www.baidu.com/s?wd=keyword

输入keyword得到搜索引擎的搜索结果。

即对我们的requests库,构造这样的url即可。

3、网络图片的爬取和存储

图片在网络上的存储地址以图片的后缀为结尾。

代码中,r.content是内容的二进制形式,写入目标文件可得到相应图片。

补充(url拼接)

如果遇到url的拼接问题,建议使用 ``urllib.parseurljoin` 方法。

1
2
3
4
5
6
7
8
9
from urllib.parse import urljoin

url = 'http://www.youtube.com/'
path = '/index.html'

>>> urljoin(url, path)
'http://www.youtube.com/index.html'
>>> url + path
'http://www.youtube.com//index.html'

可以解决一些url 用 + 连接符产生的问题。

~感谢你请我吃糖果~
-------------本文结束,感谢您的阅读,欢迎评论留言!-------------