requests_html render 设置参数
1. 不使用render
from requests_html import HTMLSession
session = HTMLSession()
#验证代理的使用
proxie = {
"http":"http://{}:密码@主机:端口".format(用户名)
}
url = “http://httpbin.org/ip”
# 参数和用法跟requests差不多
response = session.get(url,proxies=proxie)
2. 使用render
from requests_html import HTMLSession
import asyncio
import pyppeteer
# 主要是重写HTMLSession类
# HTMLSession类是用来包装pyppeteer的,添加参数的也是在pyppeteer里面
class HTMLSession2(HTMLSession):
@property
def browser(self):
if not hasattr(self, "_browser"):
ip = "ip:prot"
self.loop = asyncio.get_event_loop()
# pyppeteer.launch() 需要添加的参数
self._browser = self.loop.run_until_complete(pyppeteer.launch(headless=True, args=['--no-sandbox', '--proxy-server={}'.format(ip)]))
return self._browser
session = HTMLSession2()
session.browser #开线程一定要的参数
url = "https://httpbin.org/get"
response = session.get(url=url)
response.html.render()
print(response.html.html) #ip已经改变了
3. pyppeteer launch常用参数配置
# 是否以”无头”的模式运行,,即是否显示窗口,默认为 True(不显示)
headless=False
# 是否忽略 Https 报错信息,默认为 False
ignoreHTTPSErrors=True
# 防止多开导致的假死
dumpio=True
# args常用配置
args=[
# 不显示信息栏,比如:chrome正在受到自动测试软件的控制
'--disable-infobars',
# 最大化窗口
"--start-maximized",
# 设置UA
"--user-agent=Mozilla/5.0......",
# 取消沙盒模式,放开权限
"--no-sandbox",
# 添加代理
"--proxy-server=http://127.0.0.1:80"
]
借鉴博客
# request_html
1. https://blog.csdn.net/weixin_42715180/article/details/103035530
# pyppeteer
2. https://blog.csdn.net/weixin_44029501/article/details/106547302