爬虫2文强123

二,爬虫处理cookie和session带上cookie和session的好处:

一个cookie和session往往和一个用户对应,访问太快容易被服务器检测出来爬虫1不需要cookie的时候尽量不要用

三,处理session,cookie请求1,cookie请求方式1.1直接使用浏览器抓包到的现有的cookie进行访问网站:放在header字典里面

header={"User-Agent":"Mozilla/5.0(X11;Ubuntu;Linu…)Gecko/20100101Firefox/64.0","Cookie":"csrftoken=JfnuMOvgMGZTxtCjvgfZ…6246vb2;username=chengyangkj",}r=request.get(url,headers=header)12345当然也可以在发送get请求时加上cookies的字典参数:

Cookie="csrftoken=JfnuMOvgMGZTxtCjvgfZ…6246vb2;username=chengyangkj"1但是接受的参数是字典类型的,这就需要我们适用字符串分割方法把cookie字符串转为字典形式:

cookie保存在浏览器中,很多浏览器限制一个站点最多保存20个cookiesession存在服务器中。

爬虫cookie和session1.带上cookie和session的好处能够请求到登陆后的页面2,弊端一套cookie和session往往对应一个用户,请求太快,请求次数太多,容易被识别为爬虫

不需要cookie的时候尽量不去使用cookie但是有时为了获取登陆的页面,必须发送带有cookie的请求

处理cookie和sessionsessionrequests提供了一个sessiion类,来实现客户端和服务器端的会话保持使用的方法:1.实例化一个session对象2.让session来发送get或post请求

session=requests.session()response=session.get(url,headers)例子:第一种方法:

importrequestsdefrun():headers={'User-Agent':'ozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/70.0.3538.67Safari/537.36'}data={'username':'xxxx','password':'xxxx'

if__name__=='__main__':run()

第二种方法,直接获取cookie放在headers中

第三种方式:将cookies字典化

获取登陆后的页面三种方式1.实例化session,使用session发送post请求,然后在使用session.get获取登陆后的信息2,将cookie信息加入到headers中3,将cookies字典化,然后调用

PASSWORD='[{"userId":"**","password":"**"}]'

s.headers.update({'Content-Type':'application/x-www-form-urlencoded'})payload=''forcountinrange(0,5):printcounttry:rsp=s.post('URL',data=payload)#该URL为需要获取数据页面的F12请求正文内容#print"rsp",rspbreakexceptrequests.exceptions.ConnectionError:time.sleep(1)continue#print"rsp",rspexportfile="D:/data.xls"

withopen(exportfile,'wb')asout_file:forchunkinrsp.iter_content():#将文本流保存到文件out_file.write(chunk)#若数据无效,则删除文件f=open(exportfile,'rb')lines=f.read()isinvalid=re.search("javascript",lines)if(len(lines)==0)or(isinvalidisnotNone):print"thisisemptydata,systemwilldeleteit"f.close()os.remove(exportfile)else:print"thisisvaliddata"time.sleep(40)

一、为什么要使用Cookie

它们的关系:CookieJar–派生–>FileCookieJar–派生–>MozillaCookieJar和LWPCookieJar

二、实战

1.背景介绍

在伯乐在线有这么一个有趣的模块,面向对象,它说白了就是提供了一个程序员(媛)网上相亲的平台。

它的样子是这样的:

如果登陆了账号,获取联系方式的地方是这个样子的:

在讲解之前,推荐一款抓包工具–Fiddler,可以在GoogleChrome的Google商店下载这个插件,它的样子是这样的:

可以看到,通过这个插件,我们可以很容易找到Post的FormData等信息,很方便,当然也可以用之前讲得浏览器审查元素的方式查看这些信息。

2.过程分析

在伯乐在线首页点击登陆的按钮,Fiddler的抓包内容如下:

从上图可以看出,真正请求的url是

FormData的内容记住,这些是我们编程需要用到的。user_login是用户名,user_pass是用户密码。

从上图可以看出,此刻真正请求的url是

3.测试

1)将Cookie保存到变量中

首先,我们先利用CookieJar对象实现获取cookie的功能,存储到变量中,先来感受一下:

2)保存Cookie到文件

在上面的方法中,我们将cookie保存到了cookie这个变量中,如果我们想将cookie保存到文件中该怎么做呢?方便以后直接读取文件使用,这时,我们就要用到FileCookieJar这个对象了,在这里我们使用它的子类MozillaCookieJar来实现Cookie的保存,编写代码如下:

if__name__=='__main__':

ignore_discard的意思是即使cookies将被丢弃也将它保存下来;

ignore_expires的意思是如果在该文件中cookies已经存在,则覆盖原文件写入。

在这里,我们将这两个全部设置为True。

运行之后,cookies将被保存到cookie.txt文件中。我们可以查看自己查看下cookie.txt这个文件的内容。

3)从文件中获取Cookie并访问

我们已经做到把Cookie保存到文件中了,如果以后想使用,可以利用下面的方法来读取cookie并访问网站,感受一下:

4.编写代码

我们利用CookieJar对象实现获取cookie的功能,存储到变量中。然后使用这个cookie变量创建opener,使用这个设置好cookie的opener即可模拟登陆,同笔记四中讲到的IP代理的使用方法类似。

创建cookie_test.py文件,编写代码如下:

1.获取需要提交的数据

使用chrome的Network或者fiddler可以很轻易的得到我们想要的数据,这里使用fiddler举例。

打开fiddler

输入完账户信息和验证码后,为了方便查找,推荐点击清除清空会话记录

点击右下角的花朵即可送一朵花,左上角显示当前剩余数量,规则是每两分钟花朵数量恢复成100,每个账号可以一直送。如果仅仅是点击花朵形状可以一直送花的话,是很简单的,关键问题在于它时不时会跳出滑动验证码,如下图所示,这时候就需要解决验证码的问题了,当然了,这部分代码我是参考的别人的。

defopen(self):self.driver.get(self.url)

defget_pic(self):time.sleep(2)target=browser.find_element_by_class_name("yidun_bg-img")template=browser.find_element_by_class_name("yidun_jigsaw")target_link=target.get_attribute('src')template_link=template.get_attribute('src')target_img=Image.open(BytesIO(requests.get(target_link).content))template_img=Image.open(BytesIO(requests.get(template_link).content))target_img.save('target.jpg')template_img.save('template.png')size_orign=target.sizelocal_img=Image.open('target.jpg')size_loc=local_img.sizeself.zoom=320/int(size_loc[0])

defget_tracks(self,distance):print(distance)distance+=20v=0t=0.2forward_tracks=[]current=0mid=distance*3/5whilecurrent

back_tracks=[-3,-3,-2,-2,-2,-2,-2,-1,-1,-1]return{'forward_tracks':forward_tracks,'back_tracks':back_tracks}

defmatch(self,target,template):img_rgb=cv2.imread(target)img_gray=cv2.cvtColor(img_rgb,cv2.COLOR_BGR2GRAY)template=cv2.imread(template,0)run=1w,h=template.shape[::-1]print(w,h)res=cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)#使用二分法查找阈值的精确值L=0R=1whilerun<20:run+=1threshold=(R+L)/2ifthreshold<0:print('Error')returnNoneloc=np.where(res>=threshold)#print(len(loc[1]))iflen(loc[1])>1:L+=(R-L)/2eliflen(loc[1])==1:print('目标区域起点x坐标为:%d'%loc[1][0])breakeliflen(loc[1])<1:R-=(R-L)/2

returnloc[1][0]

defcrack_slider(self,browser):#self.open()target='target.jpg'template='template.png'self.get_pic()distance=self.match(target,template)zoo=1.36#缩放系数,需要自己调整大小tracks=self.get_tracks((distance+7)*zoo)#对位移的缩放计算#print(tracks)slider=browser.find_element_by_class_name("yidun_slider")ActionChains(browser).click_and_hold(slider).perform()

fortrackintracks['forward_tracks']:ActionChains(browser).move_by_offset(xoffset=track,yoffset=0).perform()

time.sleep(0.5)forback_tracksintracks['back_tracks']:ActionChains(browser).move_by_offset(xoffset=back_tracks,yoffset=0).perform()

ActionChains(browser).move_by_offset(xoffset=-3,yoffset=0).perform()ActionChains(browser).move_by_offset(xoffset=3,yoffset=0).perform()time.sleep(0.5)ActionChains(browser).release().perform()try:failure=WebDriverWait(browser,5).until(EC.text_to_be_present_in_element((By.CLASS_NAME,'yidun_tips__text'),'向右滑动滑块填充拼图'))print(failure)except:print('验证成功')returnNone

iffailure:self.crack_slider(browser)

#if__name__=='__main__':browser=webdriver.Chrome()

browser.implicitly_wait(10)browser.switch_to_window(browser.window_handles[-1])c=CrackSlider()k=1foriinrange(1,70000):try:elem=browser.find_element_by_class_name("idol_vote_info")elem.click()time.sleep(0.2)#设置点击50次刷新一次ifk%50==0:browser.refresh()#刷新方法refreshprint('testpass:refreshsuccessful')#点击110次休眠50s,可以自己设置ifk%110==0:print("click",k)time.sleep(50)k+=1except:print('-----需要验证-----')c.crack_slider(browser)不过代码仍然有不完善的地方,因为验证码拖动是借鉴的别人的代码,我也没有深入理解,这个验证大概需要拖动两三次才验证成功,不过我觉得已经够用了。还有程序偶尔会报错停止运行,这时候就可以再写一个小程序,监控这个程序有没有挂掉,挂掉的话重新运行该程序即可。监控的程序runner.py如下:

importosfromsysimportargv

if__name__=='__main__':whileos.system('python'+''.join(argv[1:])):print('Haltedbyexception,restart')在命令行中输入

THE END
1.怎么才能要到她的联系方式怎么才能要到她的联系方式张亚强 甘肃 0 打开网易新闻 体验效果更佳中国芯片之父,为何被台积电刁难?他为中国芯片做出哪些贡献? 酋长解毒 9跟贴 打开APP 金正恩12年执政生涯,3个女人是他的“加分项”,她们分别是谁? 神秘科普Talk 529跟贴 打开APP 实施绝杀令,打穿拦截,3部S-400导弹被命中燃烧:俄罗斯遇到硬茬https://m.163.com/v/video/VPHOGKOKF.html
2.基于相亲网站的设计与实现相亲网站开发153相亲网站 系统包含:源码+ppt+任务+开题+论文+说明文档 所用技术:SpringBoot+Mybatis+Mysql 获取资料请滑到底部获取联系方式 系统功能: 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统相亲信息管理https://blog.csdn.net/bishexuezhang/article/details/136913979
3.全新婚恋相亲系统源码/红娘金媒/支持PC端+小程序和公众号三端接入4. 付费获取联系方式 本功能允许用户通过支付一定费用来获取其他用户的联系方式,既保护了用户隐私,也为系统创造了收益。用户只需提交付费请求,完成支付流程后,即可获得心仪用户的联系方式。 5. 高级会员服务 付费交友模块为追求更优质交友体验的用户提供了高级会员服务。用户支付一定费用成为高级会员后,即可享受无限次私https://www.huizhanii.com/38936.html
4.www.hndfzx.com/xxxr95195389/20240927/532304992010年底,东莞根据"广东省陆续出台富县强镇事权改革、简政强镇事权改革的文件",通过授权、委托和调整派驻机构管理体制等方式,在产业发展、城市建设、公共服务等方面,依法下放镇级政府575项事权,"扩权强镇"全面铺开,以此解决不断出现"小马拉大车"问题。通过简政强镇事权改革,到2017年,东莞已经将3500多项事项下放给各http://www.hndfzx.com/xxxr95195389/20240927/53230499
5.www.scmc[付费]内射熟透了的大奶少妇【下滑看联系方式和完整版】 - 69AV 天堂1在线免费观看 免费一级性爱网站 23.31MB 84%好评7217人) 日本一姐rapper潮水自由 美国发布站三级片 处理片 操逼视频黄色小说 84.12MB 46%好评91人) 中日韩性生活裸体毛片免费看 大雷抖动跳舞高透 国产乱伦1024 02.58MB 54%http://www.scmc-xa.com/xxxr/114526.shtml
6.企业网站功能介绍为了方便客户与企业进行沟通,企业网站应该提供明确的联系方式。这包括电话号码、电子邮件地址和公司地址等信息。此外,提供在线咨询的功能也能够方便客户提出问题并及时得到解答,增强客户对企业的满意度和信任感。 SEO优化 为了提高企业网站的曝光率和访问量,SEO(搜索引擎优化)是必不可少的。通过优化网站的关键词、元标签http://www.xinsuixian.com/wangzhan/61259.html
7.爬虫(五)Python使用Cookie模拟登陆获取妹子联系方式在伯乐在线有这么一个又去的模块,面向对象,它说白了就是提供了一个程序员(媛)网上相亲的平台。 URL:http://date.jobbole.com/ 它的样子是这样的: 可以看到,这里有很多相亲贴,随便点进去就会有网上相亲MM的详细信息,想获取MM的联系方式,需要积分,积分可以通过签到的方式获取。如果没有登陆账户,获取联系方式的地https://www.jianshu.com/p/1481ab1ee398
8.www.yuhua考生最喜欢的地区是青岛和烟台,这两地的定向录取普遍都在610分以上,最高分为定向青岛的汉语言文学专业,635分。-——。 报道中说,莫斯科已经从平壤和首尔方面获得了对该项目的政治保证。俄罗斯政府消息人士表示,8月份俄罗斯总统德米特里-梅德韦杰夫会见朝鲜领导人金正日时,朝方已经表示,不会干扰天然气运输。作为对朝鲜http://www.yuhua-alu.com/ukrovtsjvqho=.ppt202409043283762193
9.www.nbxinxi.com/xxxr46112188.shtml3d污动漫网站在线观看 肉大捧一进一出免费6+1 麻豆网简介_官网_合作_新闻_联系方式_金羊网 21.95MB 28好评 韩国成人电性爱影在线观看 纲手本子被轮c 欧美绿帽合集videosex 870.59MB 8461好评 一改木日韩A片 高H禁伦餐桌上的肉伦np动漫视频 异世界ハーレム物语播放 33.23MB 01好评 边草潮吹http://www.nbxinxi.com/xxxr46112188.shtml
10.相亲网站联系方式大全珍爱征婚网提供相亲网站等附近男女联系方式。在线加好友群聊查询相亲网站首选珍爱网,单身脱单快。http://city.zhenai.com/zt/xqwz576
11.表爱网相亲诈骗疑云:用户花了几千也要不到女方联系方式花了几千元也要不到女方联系方式 “有个女孩对你表示好感,向你发送了秋波……”在注册完表爱网之后,家住湖北的邵先生几乎每天都能收到网站工作人员的来电。 今年27岁的邵先生还是单身,7月初,他偶然在网站上看到“表爱网”婚恋网站,便随手填写手机号码进行了注册,没料到,还真“中了头彩”,自己心仪类型的姑娘http://finance.sina.com.cn/consume/puguangtai/2016-08-24/doc-ifxvcsrn9069599.shtml
12.黑客24小时在线接单网站正规私人黑客接单联系方式接单平台《润泰黑客网》是私人首选的黑客24小时在线接单网站,主要提供正规黑客24小时联系,提现,被骗追回等服务,平台提供的均是正规炙手可热的黑客私人联系方式,单子多,事少,为网友提供正规黑客联系方式服务平台,私人黑客也可以通过我们的网站可注册成为职业黑客,通过接单平台http://www.runtaichem.net.cn/
13.www.chinesesou.cn/xxxr30216993.html麻豆网简介_官网_合作_新闻_联系方式_金羊网 7777色鬼XXXX欧色妇 酒店露脸内射 03.87MB 55%好评7834人) 圣华女学院公认高杆竿 大鸡巴乱草 翁吻乳婷婷小玲22章 80.42MB 80%好评42人) 大骚水穴穴 《RAS-0365_女友淫母饥渴寻欢》- 葡萄Av 男人扒开女人内裤把j桶进去_人人妻人人澡人人爽超污_http://www.chinesesou.cn/xxxr30216993.html
14.一个人的bd高清在线观看视频坐在上面慢慢摇全国黄片网站 破云漫画免费观看全集 女同t https:m.1024av.CC 正在播放温碧 回春医疗保健操38节完整版 大鸡巴抽B动态图全裸 王者女英雄做h污污本子 乱幕无码 我想卖自己的第一次联系方式 神打电影 成人版性感视频 美女色视频在线观看 福利 自拍 国产 f2d 伦理电影中文字幕 李宗瑞133 天天干天天看 国产淫片 一http://www.szhuasheng.cn/
15.婚恋相亲系统源码用户可报名参加各类系统组织的相亲活动,借助集体活动结识更多异性。系统会自动审核报名情况,并推送活动通知,确保活动的顺利进行。 交友匹配 交友匹配功能利用大数据和智能算法,根据用户的资料与偏好,推荐潜在的交友对象。系统提供精准匹配结果,帮助用户高效找到理想伴侣。 付费获取联系方式 为保护用户隐私并实现系统盈利,用户https://www.yuandd.net/11604.html
16.chnso.cn/xxxr78358193.shtml麻豆网简介_官网_合作_新闻_联系方式_宣讲家 31.67MB 711好评 绯色爱恋润颜保湿水适合多大年龄 白虎女女自慰 alurajensonbigass 760.11MB 646好评 中国特级毛片高潮喷水毛 草比克在线观看 《青苹果乐园》第1集手机免费播放_国际在线 94.37MB 73好评 蜜臀丅V ssis468主演是谁 亚洲性多了手机看http://chnso.cn/xxxr78358193.shtml
17.同城约茶到家服务平台联系方式同城约茶服务平台十复制搜索约服务网【http://www.xvil.com.cn】【点击进入平台联系约茶服务】。 伴玩老师伴游,高端,私人,会所,约茶到家服务联系,同城约茶两个小时不限次数-十同城高端私人约茶网站【www.xvil.com.cn】【点击进来查看平台联系约茶】网站用户在网上看好服务,http://www.bjshcx.com/
18.www.hnjkxy.net/xxxr21761210/742391.shtml“当时我抱着闯关的心态,想着能少说一点是一点,试探一下组织到底掌握了哪些情况。”因担心涉案数额太大受到严重处理,在说明问题时,杨平耍起了“心眼”,只是“丢个石头试水深”,避重就轻,以小遮大,企图蒙混过关,妄想可以免受牢狱之灾。就这样,“聪明反被聪明误”的杨平错失了能获取更大从宽处理的机会。 http://www.hnjkxy.net/xxxr21761210/742391.shtml
19.章丘相亲大会1000多名嘉宾资料已整理!带联系方式和照片!参加相亲大会的嘉宾资料!!! 不光有征婚详情 而且有联系方式和照片哦! 不整理不知道 一整理吓一跳 居然有1000多名! 单身的小伙伴也太多了吧! 相亲大会咱去不了 资料可不能再错过啦! 还在等什么? 赶紧来领取资料详情 看看有没有你中意的TA? 扫码获取资料 http://share.dazhangqiu.com/wap/thread/view-thread/tid/3194028
20.婚恋交友消费乱象:假相亲真骗钱屡禁不绝,低价可查ID联系方式南都记者在“双11”前接到了大量关于婚恋网站的爆料和投诉,经过调查发现,婚恋网站服务依然存在不少乱象。 互联网婚恋交友已不是新鲜话题。在生活节奏越来越快的当下,不少人有征婚交友的需求,却无奈没有合适的对象,不少公司根据这些需求开发了相应的婚恋交友平台,轻松注册便可掌上“相亲”,甚至有红娘一对一服务……https://static.nfapp.southcn.com/content/201811/12/c1652949.html?group_id=1
21.有朋友询问生意合作伙伴的微信联系方式,你应该怎么做?14 阅读下面这篇文章,然后回答后面的问题。(10分) 怀念一种声音 ①有一种声音,让人到中年的我越来越怀念了。这种声音非常奇妙,有颜色,有形状,有温度,还有杂含此中的情感故事。但现在再也听不到了。 ②这种声音只存在于古城的一条小巷,只存在于我家几代居住的那个小院、那座老屋。院子里有一棵梅子https://www.shuashuati.com/ti/970a36872eac4ea1b39cb49fd07abb3e.html?fm=bdd34c5e3dd8e3ba9978d7e68f238ee5ec
22.相亲一次后怎么交往相亲后交往的技巧接亲网一、相亲一次后怎么交往 1、电话联系 如果相亲之后彼此感觉还不错,不要着急下结论,可以试着电话多交流一下,多给对方个机会,也是在给自己机会,有的人属于慢热型,需要时间长了才能捂出感情来。 2、相约对方 只是通过电话交流,或许你获取的信息不全面不可靠,这时候你不妨试着多制造和对方见面的机会。楚恋君推荐借书https://www.jieqinwang.com/baike/26741
23.长沙帆城有约电话/联系方式/线下门店长沙婚介所湖南帆城有约文化传媒有限公司 公司地址:湖南省长沙市岳麓区奥克斯中心S1栋708-711 联系电话:0731-89780666 19373105371 工作时间:周一至周天9:00-22:00上一篇长沙帆城有约电话/联系方式/线下门店 下一篇帆城有约婚介所的会员群体是怎样的? 文章分类: 帆城资讯 分享到: https://www.fcyy520.com/h-nd-333.html
24.能添加联系方式的相亲平台大全这里带来能添加联系方式的相亲平台专题区,这个专区汇集了超多热门交友玩法,各种话题模式等你来参与,让小伙伴随时开启交友体验哦!平台还能添加好友的联系方式,帮助大家脱单哦!https://www.lanrentuku.com/zhuanti/ntjlxfsdxqpt/