python爬虫常用框架:
try:
r=ruquest.get(url,timeout=30)
r.raise_for_status()#如果不是200返回值,则报错
r.encoding=r.apparent_encoding
return r.text
else:
return "异常"
robots协议:网络排除协议标准(网站告知爬虫者的协议)网址/robots.txt
useragent:哪些爬虫 disallow:不许访问
robots协议的使用:
能够自动识别协议,再进行爬虫,只是协议,建议,有法律风险;
爬取京东商品:
r.status_code=返回状态码 200
出错时:
1.r.request.headers--查看我们发给浏览器的头部信息是否正确,出错需要更改信息:
kv={'user-agent':'Mozilla/5.0'}
url="https://www.amazon.cn/gp/product/B01M8l5Z3Y"
r=requests.get(url,headers=kv)
r.status_code---查看状态码是否为200
2.搜索关键词/关键词提交接口
先查看网址哪一段代表关键词:
百度的关键词接口:/s?wd=keyword
360的关键词接口:/s?q=keyword
假设我们要提取关键词python,就可以构造相关的url的键值对,然后提取相应的内容
r.request.url:查看我们发给浏览器的url是什么样的
len(r.text):查看长度
爬取图片:
1.导入requestss库---选择一个路径来存储图片--载入图片的url地址---获取url--查看状态码---如何把图片的二进制格式保存为文件?requests中r.content直接保存二进制格式;
import requests
import os
url="http://image.nationalgeographic.com.cn/2017/20170211061910157.jpg"
root="D://work//"
path=root+url.split('/')[-1]
try:
if not os.path.exists(root):
os.mkdir(root)
if not os.path.exists(path):
r=requests.get(url)
with open(path,'wb')as f:
f.write(r.content)
f.close()
print("保存成功")
else:
print("文件存在")
except:
print("失败")
2.IP地址归属查询www.ip138.com(通过此网站提交ip地址找到ip归属地)