在爬行动物中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