一、爬虫基础入门
发起请求,获取响应内容,解析内容,保存数据
1、导入库
2、利用requests中的get方法,获取URL中的内容
3、status_code查看是否成功,返回200表示成功,raise_for_status也可以查询请求是否成功;encoding查看编码,是requests基于http头部相应的编码,通过r.encoding=…可设置自己想要的 编码形式,如r.encoding=r.apparent_encoding
4、text返回数据(text返回unicode 型的数据,一般是在网页的header中定义的编码形式;而content返回的是bytes,二级制型的数据)
二、百度与360中的关键字
三、爬取图片
四、利用爬虫查询IP地址
五、定制请求头
为请求添加 HTTP 头部,只要简单地传递一个 dict 给 headers 参数就可以了。
如:
url = ‘https://api.github.com/some/endpoint’
headers = {‘user-agent’: ‘my-app/0.0.1’}
r = requests.get(url, headers=headers)
注:定制 header 的优先级低于某些特定的信息源,如:
• 如果在 .netrc 中设置了用户认证信息,使用 headers= 设置的授权就不会生效。而如果设置了auth= 参数,.netrc
的设置就无效了。
• 如果被重定向到别的主机,授权 header 就会被删除。
• 代理授权 header 会被 URL 中提供的代理身份覆盖掉。
• 在我们能判断内容长度的情况下,header 的 Content-Length 会被改写。 Requests 不会基于定制 header 的具体情况改变自己的行为。只不过在最后的请求中,所有的 header 信息都会被传递进去。而所有的 header 值必须是 string、bytestring 或者 unicode。尽管传递 unicode header 也是允许的,但不建议这样做