https://www.jianshu.com/p/461d74641e80(Scrapy爬虫入门教程))
爬虫:
就是模拟客户端发送网络请求,接受请求响应,一种按照一定的规则,自动的抓取互联网信息的程序(可以用来网上投票,短信轰炸)
Robots协议就是每个网站对于来到的爬虫所提出的要求。(并非强制要求遵守的协议,只是一种建议,但是如果不遵守有可能会承担法律责任。)
每个网站的Robots协议都在该网站的根目录下,例如百度的Robots协议的位置就是’https://www.baidu.com/robots.txt’ 或者京东的Robots协议就在’https://www.jd.com/robots.txt’
下面给出一段京东的Robots的内容:
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: /
第一个的意思就是说对于所有的爬虫,不能爬取在/?开头的路径,也不能访问和/pop/*.html 匹配的路径。
后面四个用户代理的爬虫不允许访问任何资源。
所以Robots协议的基本语法如下:
User-agent: 这里是爬虫的名字
Disallow: /该爬虫不允许访问的内容
页面的数据在哪?
- 当前url地址对应的响应中
- 其他url地址对应的响应中
- 比如ajax请求中
- js生成的
- 部分数据在响应中
- 全部通过js生成
爬取图片:
import requests
headers = {
'User-Agent': 'ozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36',
}
r=requests.get('https://ss0.bdstatic.com/7Ls0a8Sm1A5BphGlnYG/sys/portrait/item/af20e89684e99bbe6de5beaee58789b557.jpg?1543892653',headers=headers)
with open('a.jpg','wb') as f:
f.write(r.content)