从零开始学Python-3(Request 入门的小案例)
作者:互联网
本文是在Mooc上学习Python的笔记,原题如下
http://www.icourse163.org/course/BIT-1001870001
Robots协议
作用:
网站告知网络爬虫哪些页面可以抓取,哪些不行
形式:
在网站根目录下的robots.txt文件
例如
结果如下
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: /
注释,*代表所有,/代表根目录
User‐agent: *
Disallow: /
五个Requests库网络爬取的小例子
例子一 京东商品爬取
import requests
url = 'http://www.icourse163.org/course/BIT-1001870001'
try:
r = requests.get(url)
r.raise_for_status() #Raises stored HTTPError, if one occurred.
#如果发生了HTTP错误,就把这个错误存储起来
r.encoding = r.apparent_encoding
print(r.text[:1000])
except:
print('爬取失败')
例子二 爬取不允许爬虫访问的亚马逊
import requests
url = 'https://www.amazon.cn/dp/B01MSKJZ5J/ref=lp_1753445071_1_1?s=shoes&ie=UTF8&qid=1587470105&sr=1-1'
try:
kv = {'user-agent':'Mozilla/5.0'} #一个字典,用来模拟头部信息的
r = requests.get(url,headers=kv)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[1000:2000])
except:
print('爬取失败')
例子三 百度搜索全代码
import requests
keyword = 'Python'
try:
kv = {'wd':keyword} #字典或字节序列,作为参数增加到url中
r = requests.get('http://www.baidu.com/s',params=kv)
print(r.request.url)
r.raise_for_status()
print(len(r.text))
except:
print('爬取失败')
例子四 网络图片的爬取和存储
import requests
import os
url = 'http://img0.dili360.com/pic/2020/04/21/5e9ea4243bfc74p24083429.jpg@!rw9'
root = 'F://pics//'
path = root + url.split('/')[-1]
try:
if not os.path.exists(root): #如果不存在这个路径的话
os.mkdir(root) #创建这个路径
print('存在这个路径')
if not os.path.exists(path): #如果这个文件不存在
r = requests.get(url)
with open(path,'wb') as f:
f.write(r.content) #把content写入content里面
f.close()
print('文件保存成功')
else:
print('文件已存在')
except:
print('爬取失败')
例子五 IP地址归属地的自动查询
import requests
url = 'http://m.ip138.com/ip.asp?ip=' #获取ip的url
try:
r = requests.get(url+'202.204.80.112')
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[-500:])
except:
print('爬取失败')
标签:Python,Request,agent,Disallow,爬取,url,从零开始,print,requests 来源: https://www.cnblogs.com/a-small-Trainee/p/12748165.html