requests库是第三方库,需要安装(anaconda自带),但友好度更高
教程:http://docs.python-requests.org/zh_CN/latest/
连接网页并打印网页内容:
import requests
r = requests.get("http://www.baidu.com")
r.encoding = 'utf-8'
r.status_code #HTTP请求的返回状态,200表示连接成功,404表示连接失败
r.text
明显requests库更好用
实例1:爬取一个页面
简单实现:
import requests
r = requests.get('https://item.jd.com/7694047.html')
r.status_code
r.encoding
r.text
# 全代码(集成框架)
import requests
url = 'https://item.jd.com/7694047.html'
try:
r = requests.get(url)
r.raise_for_status()
# apparent_coding是基于文本内容分析出的格式
r.encoding = r.apparent_encoding
print(r.text[:1000])
except:
print(r.status_code)
实例2:隐藏
# 实例2:添加headers
import requests
url = 'https://www.amazon.cn/gp/product/B01M8L5Z3Y'
try:
kv = {'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
r = requests.get(url,headers=kv)
r.raise_for_status()
# apparent_coding是基于文本内容分析出的格式
r.encoding = r.apparent_encoding
print(r.text)
print(r.text[:1000])
except:
print(r.status_code)
如果要使用代理ip:
import requests
proxy_id = { "http": "http://10.10.1.10:3128"}
requests.get("http://example.org", proxies=proxy_id)
如果要使用cookies,类似这样做:
import requests url = 'http://httpbin.org/cookies' cookies = {'testCookies_1': 'Hello_Python3', 'testCookies_2': 'Hello_Requests'} # 在Cookie Version 0中规定空格、方括号、圆括号、等于号、逗号、双引号、斜杠、问号、@,冒号,分号等特殊符号都不能作为Cookie的内容。 r = requests.get(url, cookies=cookies)
实例3:向url传值
(如百度搜索‘python’)
实例4:保存图片
r.content 表示 r的2进制文件