在爬行动物中cookie非常有用,可以解决逆爬、阻滞等问题。 接下来谈谈获取cookie的集中方法

这里采用的是python2.7。 本来我用的是python3.6,来公司之后,公司应用了2.7版,变成了2.7版。 总之写法上有差异

第一个是机械

首先使用mechanize,第一步:

pip安装机械

编写步骤cookie代码:

importosimportmechanizeimportcookielib、 rebr=mechanize.browser (CJ=cookie lib.lwpcookiejar ) br.set_cookiejar ) CJ ) br.set_Handle_equiv ) trroke br.set_handle_referer ) true ) br.set _ handle _ robots (false ) br.set max _ time=1(br.set _ debug _ hand ) ‘ ua ‘ ) ]br.set_proxies({‘http’: ‘代理’ } (response=br.open (‘ https://www.Amazon.com ‘ ) CJ=br._ . cookiejarforcookieincj :打印(cookiename : ) cookie.name (打印) cookievalue: ) cookie.value ) )。 cookie=[ item.name ‘ : ‘ item.valueforitemincj ] cookiestr={ } foritemincookie 3360 name,value=item.split (

第二个是urllib

import urllib2importcookielibfromhttpimportcookiejarfrombs4importbeautifulsoupuser _ agent=’ Mozilla/5.0 (windows nt 10.0; Win64; x64 ) appleWebKit/537.36 ) khtml,like gecko (chrome/73.0.3683.86 safari/537.36 ) header={ } header [ ‘ user-aaar=user _ agent cookie=cook kie cookie _ handle=urllib2. http cookie processor (cookie ) cookie _ opener=urllib2. build proxy _ support=urllib2. proxy handler ({ ‘ http ‘ : ‘5. 62.157.4733608085 ‘ } ) proxy _ opener=ur lib 2.47:60600 urllib2.install_opener ) request=ur lib2. request headers=header (response=urllib2. urlopen ) request ) foritemince

第三个: requests

importrequestsheaders={ ‘ user-agent ‘ : ‘ Mozilla/5.0 (windows nt 10.0; Win64; x64 ) appleWebKit/537.36(khtml,like Gecko ) chrome/73.0.3683.86 safari/537.36 ‘ } r=requests.get (3https://wwwwww )

执行结果:

第四个: selenium (虽然我个人觉得这个加载很慢,但是获得cookie是最完整的) )。

pip install selenium代码:

fromseleniumimportwebdriverdriver=web driver.chrome (executable _ path=’ d :/seop/chrome driver.exe ‘ ) driver fer driver.add _ cookie ({ ‘ name ‘ : c,’ value ‘ 3360 cookiestr [ c ] } # driver.get (‘ https://www.Amazon.com) ) coom )

第五个:感觉selenium很慢,需要打开并加载浏览器,所以尝试了htmlunit和phantomjs

htmlunit

phantomjs

fromseleniumimportwebdriverbrowser=web driver.phantom js (browser.get (‘ https://www.Amazon.com) ) cookie=[ item ]

第六个是scrapy

在这里简单测试一下吧。 首先,你的电脑里安装了scrapy。 如果没有安装,则为pip安装脚本

然后输入获取地址的饼干

scrapyshell ‘ https://www.Amazon.com ‘ cookie结果:

最后,chrome headless通过无头浏览器获得

这个现在在centos上操作:

一定会安装步骤chrome

步骤2 :运行安装脚本

curl 3359 into Li.com/install-Google-chrome.sh|bash测试是否成功:运行以下命令,如果成功,在当前目录下保存百度截图

Google-chrome-stable—- no-sandbox—- headless– disable-GPU—screen shot 3359 www.Baidu.com

我在这里开始获得cookie信息

第一个:

Google-chrome-stable—no-sandbox—headless– disable-GPU—user-data-dir=’ $ home/Lili

second:这里主要获取websocket的url

curl -s localhost:9222/json

third :这边要注意哦。 安装wsc时,请记住在安装wsc之前安装npm。 然后运行npm install -g wsc,再运行以下命令

ws CWS ://localhost :9222/dev tools/page/d 42 AFC 3c9a F9 c8a 1511 ADC 60850 b D5 a 8,然后键入:

{‘id’: 1,’ method ‘ : ‘ network.get all cookies ‘ }上次的cookie结果:

目前已尝试了mechanize、urllib、selenium、headless chrome、requests、htmlunit、phantomjs和scrapy

目前已经尝试了以上8种,个人认为selenium获取cookie相对完整,信息相对完整,获取cookie的字段也相对稳定。 经过这两天的研究,取得cookie是因为selenium取得cookie的速度很慢。 优化速度,看看有没有其他方法获取cookie。

转载于:https://www.cn blogs.com/zhe-hello/p/10709897.html