requests模块设置代理Ip
用requests模块写有道翻译
import requests
import json
key = input('请输入你要翻译的内容')
url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {
'i': key,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': '16226278326643',
'sign': '3e5e1551836159cd404ae34a612b6eb5',
'lts': '1622627832664',
'bv': '24ecb70ba6203e4453baed50aa26b78e',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTlME'
}
res = requests.post(url, data)
res.encoding = 'utf-8'
html = res.text
print(html)
设置代理ip
- ipip.net 查询本机在外网的ip
- http://httpbin.org/ip 测试
- 免费ip网站 豌豆代理 每天20个ip (也不一定都能用)
https://h.wandouip.com/product#code
- 1 注册账号
- 2 添加ip白名单
- 3 点击工具 提取api
import requests
import random
url = 'http://httpbin.org/ip'
ips = ['http://36.56.102.60:766', 'http://25.104.34.198:5412', 'http://60.174.191.41:766', 'http://49.82.27.224:766',
'http://60.162.120.133:5412']
for i in range(5):
try:
ip = random.choice(ips)
res = requests.get(url, proxies={'http': ip}, timeout=1)
print(res.text)
except Exception as e:
print(e)
处理不被信任证书的网站
需求:像一个不被SSL证书信任的网站爬取数据
为什么不行?
不被信任网站的前世今生
什么是SSL证书? SSL证书它就是数字证书的一种 配置在服务器上 所以也称之为SSL服务器证书
有啥特点? SSL证书是遵守了SSL协议 由受信任的数字证书颁发机构 验证身份之后颁发的证书 。同时具有服务器身份验证和数据传输加密功能
http 0–》https
http://game.qidian.com/
http的网站能不能升级为https 这个升级的过程就是需要一个证书 SSL证书
这个证书咋搞? 自己做这个证书 可以找第三方的数字认证机构来制作
12306 所有功能都是自己做的 包括证书
import requests
url = 'https://inv-veri.chinatax.gov.cn/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/91.0.4472.77 Safari/537.36 '
}
res = requests.get(url, headers=headers, verify=False)
print(res.text)
携带cookie模拟登录QQ空间
import requests
url = 'https://user.qzone.qq.com/这里是QQ号'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/91.0.4472.77 Safari/537.36 ',
'cookie': '这里复制cookie'
}
req = requests.get(url,headers=headers)
print(req.text)