标签:response async query imp 参数 原来 com range def
发送请求--获得数据--解析数据--存储数据
bs4 pyquery re
URL method Header: Cookie 存储 Referer上一次跳转 User-Agent请求头
不要把status 作为请求是否成功的结果
携带的参数
url
headers = {} #请求头
cookies = {} #请求cookie
params = {} #请求携带的参数
proxies = {‘http‘:‘http://端口:ip’} #代理
timeout #超时时间
allow_redirects = False #不允许跳转
? url:
? headers = {}
? cookies = {}
? data = {} #表单
? json = {} #jason
? files = {‘file’:open(...,‘rb’)} #文件
? timeout = 0.5
? allow_redirects = False
session=request.session() #先使用session发送请求,登陆网站,把cookie保存在session中 response=session.get(url,headers) #下次再使用session请求登陆后才能访问网站,session能够自动的携带登陆成功的session
import http.cookiejar as cookielib session.cookie = cookielib.LWPCookieJar() session.cookie.save(filename=‘1.txt‘) session.cookies.load(filename=‘1.txt‘)
r.url r.text r.encoding = ‘gbk‘ r.content r.json() r.status_code r.headers r.cookies r.history
pip install requests-html from requests_html import HTMLSession session = HTMLSession() **参数:** browser.args = [‘--no-sand‘, ‘--user-agent =XXXXX‘] #默认是无头,这怎么可以?容易被识别 必须改掉,空格一定不能有
session = HTMLSession(browser_args=[‘--no-sand‘,‘--user-agent=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36‘],headless=False)
from requests_html import HTMLSession
session = HTMLSession()
res=session.get(r"http://www.tuniu.com/?p=15295&utm_source=baidu&utm_medium=cpc&utm_campaign=SE&fc=u9765489.k22013360876.a6753602032.pb")
print(res.html.absolute_links)
其他:
.absolute_link 绝对的link url组成的列表
.links #原来的连接 .base_url #根域名 .html .text .encoding = ‘gbk‘ .raw_html #二进制流 .pq #
r.html.find(‘css选择器‘) .find(‘css选择器‘,first = True) .xpath(‘xpath选择器’) .xpath(‘css选择器‘,first = True) .search(‘模板’)
.search__all(‘模板’)
print(res.html.search_all("[国庆]<{name}总统府")) #【Result_obj,Result_obj,Result_obj】
print(res.html.search("[国庆]<{name}总统府")) #Result_obj
把head-less设成False
try: r.html.render(script=scrapts,sleep=1,keep_page=True) async def main(): # await r.html.page.screenshot({"path":‘2.png‘,‘clip‘:{‘x‘:200,‘y‘:200,‘width‘:400,‘height‘:400}}) #截屏 # res = await r.html.page.evaluate(‘‘‘ # ()=>{ # var a = document.querySelector("#list") # return {‘x‘:a.offsetLeft} # } # ‘‘‘) # print(res) # print(await r.html.page.cookies()) # await r.html.page.type(‘#kw‘,‘泷泽萝拉‘,{‘delay‘:500}) # await r.html.page.waitForSelector(‘[name="tj_trnews"]‘) # await r.html.page.click(‘[name="tj_trnews"]‘) # await r.html.page.focus(‘[type="number"]‘) # await r.html.page.keyboard.type(‘111111‘,{‘delay‘:200}) # await r.html.page.hover(‘[data-stat-id="6f5c93b4d1baf5e9"]‘) # await r.html.page.keyboard.type(‘喜欢你啊啊啊‘, {‘delay‘: 200}) # await r.html.page.keyboard.down(‘Shift‘) # for i in range(3): # await r.html.page.keyboard.press(‘ArrowLeft‘,{‘delay‘: 1000}) # await r.html.page.keyboard.up(‘Shift‘) # await r.html.page.keyboard.press(‘Backspace‘) res = await r.html.page.evaluate(‘‘‘ ()=>{ var a = document.querySelector(‘[alt="【究极爆肝】德克萨斯与拉普兰德的感伤往事(明日方舟描改 动画手书·完整版)"]‘) return { ‘x‘:a.x+a.width/2, ‘y‘:a.y+a.height/2 } } ‘‘‘) print(res) # await r.html.page.mouse.move(res[‘x‘],res[‘y‘],{‘steps‘:200}) # await r.html.page.mouse.down({‘button‘:‘right‘}) # await r.html.page.mouse.up({‘button‘:‘right‘}) # await r.html.page.mouse.click(res[‘x‘],res[‘y‘]) await r.html.page.waitFor(5000) session.loop.run_until_complete(main()) finally: session.close()
asynic def xxx(): await r.html.page.XXX session.loop.run....(xxx()) .screenshot({‘path‘:路径}) ? .evaluate(‘‘‘() =>{js代码}’‘’}) ? .cookies() ? .type(‘css选择器‘,’内容‘,{’delay‘:100}) ? .click(‘css选择器‘) ? .focus(‘css选择器‘) ? .hover(‘css选择器‘) ? .waitForSelector(‘css选择器‘) ? .waitFor(1000)
键盘事件 r.html.page.keyboard.XXX
.down(‘Shift‘) .up(‘Shift‘) .press(‘ArrowLeft‘) #按一下放开 .type(‘喜欢你啊‘,{‘delay’:100}) #输入 每个间隔控制在100毫秒
鼠标事件 r.html.page.mouse.XXX
.click(x,y,{ ‘button‘:‘left‘, ‘click‘:1 ‘delay‘:0 }) .down({‘button‘:‘left‘}) .up({‘button‘:‘left‘}) .move(x,y,{‘steps‘:1})
标签:response async query imp 参数 原来 com range def
原文地址:https://www.cnblogs.com/xzqpy/p/11309958.html