requests_html render 设置参数

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

猜你喜欢

转载自blog.csdn.net/weixin_44388373/article/details/121394062