文章目录
实例1 京东商品页面的爬取
查看robots
协议
import requests
# from pprint import pprint
url = "https://item.jd.com/100009177424.html"
try:
r = requests.get(url)
# print(r.status_code) #HTTP请求的返回状态,200表示连接成功,404表示失败
# print(r.encoding) #从HTTP header中猜测的响应内容编码方式
# print(r.apparent_encoding) #从内容中分析出的响应内容编码方式(备选编码方式)
r.encoding = r.apparent_encoding
print(r.text[:1000])
# pprint(r.text[:1000])
except:
print("Fail!!!")
实例2 亚马逊商品页面的爬取
import requests
url = "https://www.amazon.cn/gp/product/B01M8L5Z3Y"
try:
kv = {'user-agent': 'Mozilla/5.0'} #不加 -> 503
r = requests.get(url, headers=kv)
# print(r.status_code) #HTTP请求的返回状态,200表示连接成功,404表示失败
# print(r.encoding) #从HTTP header中猜测的响应内容编码方式
# print(r.apparent_encoding) #从内容中分析出的响应内容编码方式(备选编码方式)
# print(r.request.headers)
r.raise_for_status() #如果转态不是200,引发HTTPError错误
r.encoding = r.apparent_encoding
print(r.text[1000:2000]) #HTTP响应内容的字符串形式,即,url对应的页面内容
except:
print("Fail!!!")
实例3 百度/360搜索关键词提交
百度
r = requests.get("http://www.baidu.com/s", params=kv) #params : 字典或字节序列,作为参数增加到url中
print(r.status_code)
print(r.request.url)
kv = {'wd': 'Python'}
headers = {'user-agent': 'Mozilla/5.0'}
r = requests.get("http://www.baidu.com/s", params=kv, headers=headers) #params : 字典或字节序列,作为参数增加到url中
print(r.status_code)
print(r.request.url)
360搜索
360的关键词接口
http://www.so.com/s?q=keyword
import requests
keyword = "Python"
try:
headers = {'user-agent': 'Mozilla/5.0'} #不加 -> 503
r = requests.get("http://www.so.com/s", headers=headers, params=kv) #params : 字典或字节序列,作为参数增加到url中
# print(r.status_code) #HTTP请求的返回状态,200表示连接成功,404表示失败
# print(r.encoding) #从HTTP header中猜测的响应内容编码方式
# print(r.apparent_encoding) #从内容中分析出的响应内容编码方式(备选编码方式)
# print(r.request.headers)
print(r.request.url)
r.raise_for_status() #如果转态不是200,引发HTTPError错误
r.encoding = r.apparent_encoding
print(len(r.text))
except:
print("Fail!!!")
DogeDoge搜索
DogeDoge的关键词接口
https://www.dogedoge.com/results?q=keyword
import requests
keyword = "Python"
try:
kv = {'q': keyword}
headers = {'user-agent': 'Mozilla/5.0'} #不加 -> 503
r = requests.get("https://dogedoge.com/results", headers=headers, params=kv) #params : 字典或字节序列,作为参数增加到url中
# print(r.status_code) #HTTP请求的返回状态,200表示连接成功,404表示失败
# print(r.encoding) #从HTTP header中猜测的响应内容编码方式
# print(r.apparent_encoding) #从内容中分析出的响应内容编码方式(备选编码方式)
# print(r.request.headers)
print(r.request.url)
r.raise_for_status() #如果转态不是200,引发HTTPError错误
r.encoding = r.apparent_encoding
print(len(r.text))
except:
print("Fail!!!")
实例4 网络图片的爬取和存储
在jupyter中显示图片
Python图片爬取方法总结
实例5 IP地址归属地自动查询
http://m.ip138.com/ip.asp??ip=ipadderess
https://ipchaxun.com/ipadderess
import requests
url = "https://ipchaxun.com/"
try:
headers = {'user-agent': 'Mozilla/5.0'}
r = requests.get(url = url + '202.204.80.111', headers=headers)
print(r.status_code)
print(r.request.url)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text)
except:
print("爬取失败")
r.request.url