有时候我们的抓取项目时需要登陆到某个网站上,才能看见某些内容的,所以模拟登陆功能就必不可少了,散仙这次写的文章,主要有2个例子,一个是普通写法写的,另外一个是基于面向对象写的。
模拟登陆的重点,在于找到表单真实的提交地址,然后携带cookie,post数据即可,只要登陆成功,我们就可以访问其他任意网页,从而获取网页内容。
方式一:
import urllib.request
import urllib.parse
import http.cookiejar
#post的内容
values={
'logon.x':'linke',
'password':'xxxx',
'username':'xxxxx'
}
#登陆的地址
logUrl="http://192.168.32.112:8080/templates/index/hrlogon.do"
#构建cook
cook=http.cookiejar.CookieJar()
#构建openner
openner=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cook))
#添加headers
openner.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')]
r=openner.open(logUrl,urllib.parse.urlencode(values).encode())
#print(r.read().decode('gbk'))
r=openner.open("http://192.168.132.62:8080/kq/kqself/card/carddata.do?b_query=link")
print(r.read().decode('gbk'))
方式二:
import urllib
import urllib.request
import urllib.parse
import http.cookiejar
import re
class loginRLKQ:
post_data=b"";
def __init__(self):
#初始化类,cook的值
cj=http.cookiejar.CookieJar()
opener=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
opener.addheaders=[('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')]
#初始化全局opener
urllib.request.install_opener(opener)
#login方法需要加入post数据
def login(self,loginurl,encode):
#模拟登陆
req=urllib.request.Request(loginurl,self.post_data)
rep=urllib.request.urlopen(req)
d=rep.read()
#print(d)
d=d.decode(encode)
return d
#登陆之后获取其他网页方法
def getUrlContent(self,url,encode):
req2=urllib.request.Request(url)
rep2=urllib.request.urlopen(req2)
d2=rep2.read()
d22=d2.decode(encode)
return d22
if __name__=="__main__":
#实例化类
x=loginRLKQ()
#给post数据赋值
x.post_data=urllib.parse.urlencode({'username':"xxdd",'password':'xxdd','logon.x':'linke'}).encode(encoding="gbk")
#登陆
y=x.login("http://192.168.132.61:8080/templates/index/hrlogon.do","gbk")
#获取网页信息
print(x.getUrlContent("http://192.124.32.16:8080/kq/kqself/card/carddata.do?b_query=link","gbk"))
分享到:
相关推荐
opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15 win64版,opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15,支持版本:python3.4,3.5,3.6
python3.4 安装包 windows操作系统下的python软件,经测试能正常使用
适用于Windows64位,对应Python 3.6版本,OpenCV为3.4.1.15版本;内含有《opencv_contrib_python-3.4.1.15-cp36-cp36m-win_amd64.whl》和《opencv_python-3.4.1.15-cp36-cp36m-win_amd64.whl》两个文件
numpy for python3.4
Windows64位,Python3.4,Numpy安装包。 安装前请配置相应环境变量,在Dos下执行命令进行安装。 可参考安装教程:https://blog.csdn.net/Katrina_ALi/article/details/64922107
python.exe PYTHON3.4
Python是一门简单易学,功能强大的编程语言。它具有高效的高级数据结构和简单而有效的面向对象...此外,用户必须要确定正在使用的是3.4版本,因为小编带来的是python3.4中文手册,专门针对使用该版本的用户进行学习的!
opencv-python3.4.1.15 opencv-contrib-python3.4.1.15 在这版本之后opencv的sift算法被申请了专利保护 这是bilibili上opencv课程的资源
python3.4 版本 32位 64位
python3.4配套的twisted,安装scrapy需要安装twisted,此版本对应python3.4
3.安装Python 3.4,运行命令:sudo apt-get install python3.4。 4.安装完成后,可以通过运行命令python3.4 --version来验证Python 3.4是否正确安装。 以上步骤适用于大多数Linux发行版,但具体操作可能会因系统版本...
Python3.4官方入门指南,入门必看的书籍,基于Python3.x
python 3.4 64位安装包集合,安装最新版遇到set up failed时用。 (python-3.4.4.amd64,pywin32-221.win-amd64-py3.4,WMI-1.4.9.win32)
python3.4爬取网络图片,然后写入文件的示例小程序
可以将Python3.4版本的py文件打包成exe,内附使用说明
该压缩包是本人自己下载并安装的python3.4安装目录的压缩包,包括了很多第三方包,特别是Cryptodome这个第三方包。
Python3.4 PyQt5 32位安装版(PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x32.exe)
opencv-python 3.4.3.18
Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python...
Python科学计算基本模块安装文件,包括Python3.4、scipy和matplotlib,均是whl文件,由于上传文件大小限制,numpy文件可在http://www.lfd.uci.edu/~gohlke/pythonlibs/中下载。whl文件可用pip安装。