Requests库网络爬虫的实战
京东爬虫
学习简单的获取网页信息的架构
import requests
url = "https://item.jd.com/2969929.html"
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[:1000])
except:
print("爬取失败")
亚马逊网址爬虫
学习简单的,有限制的,需要User-Agent头的那些信息。
import requests
baseURI = "https://www.amazon.cn/dp/B07QZTK2TB"
try:
key = {'User-Agent':'Mozilla/5.0'}
# 'Mozilla/5.0'即为标准浏览器的表头
# 本示例有没有这个heades都可以进行爬取,简要介绍该方法
r = requests.get(baseURI,headers = key)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text)
except:
print("爬取错误")
百度搜索代码
学习params方法,利用爬虫向网址提出搜索关键字的请求
import requests
keyword = "python"
try:
ky = {'wd':keyword}
r = requests.get("http://www.baidu.com/s",params = ky)
print(r.request.url)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text)
except:
print("爬取错误")
搜索爬取网络图片
简单介绍搜索图片的代码。找到你想要的图片,右击复制网址。
import requests
import os
url = 'http://img0.dili360.com/ga/M02/49/17/wKgBzFn4EguAHyupABTkUDQE9BM334.tub.jpg@!rw9'
root = 'D://picture//'
# path = root + url.split('/')[-1]
path = root + '01' + '.jpg'
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('文件保存成功')
print('文件已存在')
except:
print("爬取错误")
利用爬虫获取ip地址
网址:https://www.ip138.com
这一部分代码相对简单,但希望各位去真正尝试一下。尝试搜索一个ip号,发现他的网址有什么变化
ip=59.66.32.255 清华大学IP地址
如:https://www.ip138.com/iplookup.asp?ip=59.66.32.255&action=2
import requests
IP = '59.66.32.255'
url = 'https://www.ip138.com/iplookup.asp?ip=' + IP + '&action=2'
try:
r = requests.get(url)
r.raise_for_status()
print(r.raise_for_status)
r.encoding = r.apparent_encoding
print(r.text)
except:
print("爬取错误")
但是呢,我们发现,爬取的结果为:
这时我们就想到了第二个示例中添加headers的形式,模拟浏览器,使得网址能够识别。
import requests
IP = '59.66.32.255'
url = 'https://www.ip138.com/iplookup.asp?ip=' + IP + '&action=2'
ky = {"User-Agent":'Morilla/5.0'}
try:
r = requests.get(url,headers = ky)
r.raise_for_status()
print(r.raise_for_status)
r.encoding = r.apparent_encoding
print(r.text)
except:
print("爬取错误")
自己的一点儿点儿小小的经历想告诉大家,其实爬虫并不难。难的在于获取页面内容信息之后,如何对数据进行清洗,以及进行数据的筛选。后边也会出一个小小的例子,关于利用爬虫获取最近郑州疫情,并爬取到郑州疫情病例以及人员活动轨迹。