爬虫(二)requests 登陆某检索网站
1 import requests
import os
from PIL import Image
import pytesseract
import re rootUrl = xxx
# 构建登录页面url
9 loginUrl = rootUrl + '/sipopublicsearch/portal/uilogin-forwardLogin.shtml'
# 构建登陆页面headers
rootHeaders = {
'Cache-Control': 'max-age=0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Upgrade-Insecure-Requests': '',
'Connection': 'keep-alive',
'Host': 'www.pss-system.gov.cn'
}
# 保持会话,建立session
s = requests.session()
# get 之后打印cookies,发现其中缺了一项cookie,这里手动添加
requests.utils.add_dict_to_cookiejar(s.cookies,{'avoid_declare':'declare_pass'}) # 使用utils.add_dict_to_cookiesjar()是保存到session里面
r =s.get(url=rootUrl,headers=rootHeaders,verify=False) # 在某段时间内可以一直存在
print(s.cookies.get_dict())
# 请求 验证码链接 ,下载图片
# 构建验证码链接
verifyUrl = rootUrl + '/sipopublicsearch/portal/login-showPic.shtml'
# 构建请求验证码的headers
verifyHeaders = {
'Cache-Control': 'max-age=0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Upgrade-Insecure-Requests': '',
'Connection': 'keep-alive',
'Host': rootUrl,
'Referer': rootUrl + '/sipopublicsearch/portal/uilogin-forwardLogin.shtml',
}
verifyCode = s.get(url=verifyUrl,headers=verifyHeaders,verify=False)
os.chdir(r'更改保存验证码图片路径')
with open('verifycode.png','wb') as f:
f.write(verifyCode.content)
f.close()
png = Image.open(r'verifycode.png')
# pip 出问题了 ,装不了 tesseract ,只能手动识别了
#verifycode = pytesseract.image_to_string(png)
#print('验证码为【{}】,'.format(verifycode),end='')
png.show()
mycode = input('请输入答案:') # 提交表单的 第一个请求是 post ,然后从headers中取出 下一个跳转的url
# 先构建post的url, 其中参数 V 其实可以做成一个自动变化的参数,这里就不做了
jumpUrl = rootUrl + '/sipopublicsearch/wee/platform/wee_security_check?v=20180802'
jumpHeaders = {
'Cache-Control': 'max-age=0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Upgrade-Insecure-Requests': '',
'Connection': 'keep-alive',
'Host': rootUrl,
'Referer': rootUrl + '/sipopublicsearch/portal/uilogin-forwardLogin.shtml',
'Origin': rootUrl,
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': '',
}
postData = {
'j_loginsuccess_url':'', # 这个值为空,用两个引号表示空值,不能换 None 哦!!
'j_validation_code':mycode,
'j_username':用户名, # 用户名和密码是加密过的,不过还好不是动态变化的加密,不然就麻烦了
'j_password':密码,
}
# post 请求
postResponse = s.post(url=jumpUrl,data=postData,headers=jumpHeaders,verify=False)
# 测试是否已经进爬取页面
from lxml import etree
html = etree.HTML(postResponse.text)
testEle = html.xpath('//div[@class="wrap-left"]/p/text()')[0]
print(testEle) # 这里已经显示 【 xxx用户名,欢迎访问!】 表示已经进入爬取页面了 # 可以像下面这样写到本地,方便自己查看,Txt还要注意 需要 编码成 utf-8
with open('content.txt','w',encoding='utf-8') as c:
c.write(postResponse.text)
c.close()
print(postResponse.status_code) # 这下面的都不要了 ,因为上面就已经进去了,下面这段代码对应的响应位于【发送post请求】与【获取真正可以爬取页面】之间的跳转页面
'''
# 获取响应中跳转的url
pattern = re.compile(r'<a href="(.*?)">')
reUrl = pattern.search(postResponse.text)
getUrl = reUrl.group(1)
print(reUrl.group(1)) # 提交表单的第二次请求是 get ,
# url:getUrl ; headers: jumpHeaders
print(s.cookies.get_dict())
getResponse = s.get(url=getUrl,headers=jumpHeaders,verify=False) # 这里请求的cookies和 headers 应该是只能按它需要的发送,不能发多
print(getResponse.url)
print(getResponse.headers)
print(s.cookies.get_dict())
# re2Url = pattern.search(getResponse.text)
# lastUrl = re2Url.group(1)
# print(re2Url.group(1)) # 得到 /sipopublicsearch/portal/uiIndex.shtml
# get2Url = nethost + lastUrl # 进入真正的登陆后的页面
# 拿最后获取的 get2Url 进入登陆后页面
# lastResponse = s.get(url=get2Url,headers=jumpHeaders,verify=False)
# print(lastResponse.status_code)
# print(lastResponse.url)
'''
上面这段代码是登陆某检索网站的全部思路,其中对于登陆该网站而言真正有用的是【1~90行】,那为什么还有这么多呢?那是因为之前的经验蒙蔽了我得双眼,比如下面这两者情况:
第一种aaarticlea/png;base64,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" alt="" />
第二种aaarticlea/png;base64,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" alt="" />
【这里开始分析】: 以前碰到的是上图中第一种;那儿有两个框,分别标了1和2;2代表的是真正请求的爬取网站,1代表真正请求前跳转的网站,一般这种跳转网站字节少,上面箭头已给出对比;两个框里面的状态码 都是200,表示这都是有响应的,通常情况下,这种跳转网页的响应中都包含了真正请求爬取网站所需的参数或者cookie,因此要登陆这种有跳转的爬取网站都必须先去跳转网站获取数据;这里有难度的登陆网站【个人经验】会做以下几点:(1)将跳转网站链接参数用js加密,让大部分爬虫挂在这儿,(2)不加密跳转网站链接参数,转为js加密数据【哪些数据?那些在处理登陆问题时要用到的数据】(3)上述两个不全加密 (4 )【有哪些加密方法啊?这个我晓得几个,不过现在还无法搞定,等能搞定再写一篇解密】
上图中第二种:框框共有4个,其中2和3明显属于页面跳转链接,于是经验使然,直接打开fiddler开始分析链接参数啊、下一步需要的数据啊,哎,发现两个都没有加密过,只是位置变来变去,ok,没什么大问题,搞定后开始将数据代入真正请求的爬取网址,代码开始运行....
然后就发现...好像将表单提交之后,就已经进入爬取页面了。 嗯??!! WTF ? 那我后面还搞了这么多,不是瞎搞啊 ? 什么情况呢?
然后就发现上图框框中标记的1、2、3、4啊,前面的状态码,不太对! 中间那两个302是什么意思? 呃 ? 忘了,然后baidu ,哦?302表示临时的url重定向url!! 原来是这样,难怪不用我自己发送请求,原来是多此一举【总结这个网站,呃,除了数据绕了点,好像其他没上什么高难度的操作,嗯,很友好我喜欢!!!】
【结语】此次目的就是登陆,因此写了登陆时测试的代码【呸,写的都是什么,这么乱还能叫代码?】,如果后续要爬取数据的话,思路是这样的:
1、加入ip代理【先测试一个ip能爬多少个,然后退出登陆,换headers,ip重新登陆再爬取,这样循环...】
2、引入线程【一个爬数据,一个存数据到本地(啥形式?随便。注意存的时候要查下重),主要是为了防止:一旦错误发生,数据全部丢失,又得重来】
3、如果有大量url,那就建个url管理器,并将url实时导入导出到本地【这样一旦发生错误,还可以从断开的url继续爬,虽然要牺牲些时间】
【最后】
【有一个问题求助:在某个链接的参数上遇到了【MmEwMD】这个js加密,求个例子解法】
爬虫(二)requests 登陆某检索网站的更多相关文章
- Python 爬虫二 requests模块
requests模块 Requests模块 get方法请求 整体演示一下: import requests response = requests.get("https://www.baid ...
- 爬虫二 requests模块的使用
一.requests模块的介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:reques ...
- 第三百二十二节,web爬虫,requests请求
第三百二十二节,web爬虫,requests请求 requests请求,就是用yhthon的requests模块模拟浏览器请求,返回html源码 模拟浏览器请求有两种,一种是不需要用户登录或者验证的请 ...
- python爬虫之requests库介绍(二)
一.requests基于cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们 ...
- Python爬虫入门教程 2-100 妹子图网站爬取
妹子图网站爬取---前言 从今天开始就要撸起袖子,直接写Python爬虫了,学习语言最好的办法就是有目的的进行,所以,接下来我将用10+篇的博客,写爬图片这一件事情.希望可以做好. 为了写好爬虫,我们 ...
- Python爬虫之requests
爬虫之requests 库的基本用法 基本请求: requests库提供了http所有的基本请求方式.例如 r = requests.post("http://httpbin.org/pos ...
- python爬虫之requests模块
一. 登录事例 a. 查找汽车之家新闻 标题 链接 图片写入本地 import requests from bs4 import BeautifulSoup import uuid response ...
- 孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块
孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...
- Python爬虫练习(requests模块)
Python爬虫练习(requests模块) 关注公众号"轻松学编程"了解更多. 一.使用正则表达式解析页面和提取数据 1.爬取动态数据(js格式) 爬取http://fund.e ...
随机推荐
- 包-logging-hashlib-深浅拷贝
一.包: 包的本质就是一个模块 什么是包:它是一系列模块文件的结合体,表示形式就是一个文件夹,该文件夹内部通常会有一个__init__..py的文件 导入包的过程:先产生一个执行文件的名称空间 1:创 ...
- 893C. Rumor#谣言传播(赋权无向图&搜索)
题目出处:http://codeforces.com/problemset/problem/893/C 题目大意:一个城中有一些关系圈,圈内会传播谣言,求使每个人都知道谣言的最小花费 #include ...
- \b 是单词边界锚点 word-boundary anchor,一个“\b”匹配一个单词的一端,两个“\b”匹配一个单词的头尾两端
123 $_ = "beforematcha? fter"; 124 if(/\b\w+a\b/){ 125 print "matched: < ...
- Angular(一)
Angular开发者指南(一)入门介绍 什么是AngularAngularJS是动态Web应用程序的结构框架. 它允许您使用HTML作为模板语言,并允许您扩展HTML的语法以清晰,简洁地表达应用程 ...
- Codeforces Round #525 (Div. 2)后俩题
E:https://codeforces.com/contest/1088/problem/E dp+贪心 题目大意:选择一个k并且选择k个连通块,要求sigma a[i]/k最大,k尽量大,对于给定 ...
- 系统学习javaweb重点难点2--.JavaScript中的正则对象简述和正则对象使用注意事项。
注意:只是简述,对正则对象的了解目前还不是很深刻,日后详细了解了再来修改. 正文: 正则对象 首先,我们要了解一下什么是正则对象: 正则表达式,又称规则表达式.(英语:Regular Expressi ...
- Mysql 和 Java对比异同
1.求两个时间的差(天数) mysql : to_days 距离公元0年的天数 select TO_DAYS('2017-10-18 00:00:00'),TO_DAYS(NOW()), (TO_DA ...
- Office 365管理员设置
一.注册 1.输入网站 http://www.21vbluecloud.com/ ,进入世纪互联蓝云官方网站 2.选择 运营的产品->Office 365 3.选择了解更多 4.浏览根据不同的 ...
- JavaScript--DOM,BOM
前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DO ...
- 浏览器加载、渲染html的顺序和页面优化
浏览器加载和渲染html的顺序 1. IE下载的顺序是从上到下,渲染(就是把请求的内容显示到浏览器屏幕上)的顺序也是从上到下,下载和渲染是同时进行的. 2. 在渲染到页面的某一部分时,其上面的所有部分 ...