在学习了一大堆的基本概念啥的,可能很多人不明白怎么具体怎么写爬取代码,故我们写几个例子来巩固一下我们学的知识
爬取京东某商品页面
其链接为:https://item.jd.com/2967929.html
现在开始爬取:
import requests
url = "https://item.jd.com/2967929.html"
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[:1000])
except:
print("爬取失败")
这个代码比较简单,也比较基础,其结果为:
爬取亚马逊某商品页面
其网址为:https://www.amazon.cn/gp/product/B01M8L5Z3Y
如果按照常规方法会发现r.encoding不是200,故我们可以通过修改头部来使我们的访问不被阻止
需要修改headers字段,模拟浏览器向网站发起访问
增加并修改部分代码:
kv = {'user-agent': 'Mozilla/5.0'}
r = requests.get(url, headers=kv)
可爬取到结果:
百度360搜索关键字提交
百度的关键词接口:
http://www.baidu.com/s?wd=keyword
360的关键字接口:
http://www.baidu.com/s?q=keyword
我们可以利用params实现关键字
import requests
keyword = "Python"
try:
kv = {'wd':keyword}
r = requests.get("http://www.baidu.com/s", params = kv)
print(r.request.url)
r.raise_for_status()
print(len(r.text))
except:
print("爬取失败")
结果如下:
网络图片的爬取与存储
网络图片链接的格式:
http://www.example.com/picture.jpg
import requests
import os
url = "http://image.nationalgeographic.com.cn/2017/0211/20170211061910157.jpg"
root = "D://pics//"
path = root + url.split('/')[-1]
try:
if not os.path.exists(root):
os.mkdir(root)
#判断根目录是否存在,若不存在,通过mkdir新建
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("提取失败")
我们可以查看自己的D盘是否存在
说明存储成功
IP地址归属地的自动查询
我们可以通过这个接口去查询
http://m.ip138.com/ip.asp?ip=ipaddress
举个例子:
import requests
url = "http://m.ip138.com/ip.asp?ip="
try:
r = requests.get(url+'202.204.80.112')
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[-500:])
except:
print("爬取失败")
结果如下:
第二篇关于爬虫的Requests的实例的学习就到此结束啦!
具体可参看北京理工大学的慕课