模拟登陆 & 抓取网页
来源:互联网 发布:淘宝怎么申请信用卡 编辑:程序博客网 时间:2024/04/30 11:42
1. 自定义抓取类
#!/usr/bin/python3# coding=utf-8import gzip, reimport http.cookiejarimport urllib.requestimport urllib.parseclass Spider: postData = '' headers = { 'Connection': 'Keep-Alive', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Language': 'zh-CN,zh;q=0.8', 'User-Agent': 'Mozilla/5.0 (windows NT 6.3; WOW64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36', 'Accept-Encoding': 'gzip,deflate', 'Host': 'domain.com' } # 初始化 def __init__(self): cj = http.cookiejar.CookieJar() pro = urllib.request.HTTPCookieProcessor(cj) opener = urllib.request.build_opener(pro) header = [] for key, value in self.headers.items(): elem = (key, value) header.append(elem) opener.addHeaders = header urllib.request.install_opener(opener) # 模拟登陆 def login(self, login_url): req = urllib.request.Request(login_url, self.postData) resp = urllib.request.urlopen(req) data = resp.read() data = self._ungzip(data) data = data.decode() return data # 抓取登陆之后的某一页面 def getContents(self, page_url): req = urllib.request.Request(page_url) resp = urllib.request.urlopen(req) data = resp.read() data = self._ungzip(data) data = data.decode() return data # 解压 def _ungzip(self, data): try: data = gzip.decompress(data) except: print('') return data
2. 抓取
sp = Spider()// user, pass是form表单的字段sp.postData = urllib.parse.urlencode({'user':'username','pass':'password'}).encode()domain = 'http://abc.com'login_url = domain + '/login'login = sp.login(login_url)page_url = domain + '/test.html'contents = sp.getContents(page_url)print(contents)
0 0
- 模拟登陆 & 抓取网页
- 使用curl模拟登陆抓取网页指定内容
- 如何用Python去实现抓取静态网页+抓取动态网页+模拟登陆网站
- 静态网页抓取,动态网页抓取,模拟登陆的注意事项和心得
- 【数据抓取】模拟登陆
- (转)Python-详解抓取网站,模拟登陆,抓取动态网页的原理和实现
- 详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)
- 模拟浏览器抓取网页
- 抓取网页,分析网页内容,模拟登陆网站的逻辑/流程和注意事项
- [参考资料]如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站
- 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站
- 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站
- 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站
- 模拟登陆,抓取会员课程
- POST获取网易博客数据(网页抓取,模拟登陆资料学习备份)
- 使用Java模拟浏览器登陆网站(以抓取武汉理工大学教务处学生个人课表网页为例)
- Python网页抓取、模拟登录
- Python网页抓取、模拟登录
- 双向BFS解八数码问题: POJ 1077
- python语法学习之数据结构
- Android 打勾显示输入的密码
- C# 跨线程操作UI(界面)
- yarn分布式集群部署
- 模拟登陆 & 抓取网页
- Linkify的使用
- javac 编译
- noip2006 金明的预算方案 (有依赖的背包转化为01背包)
- linux php 源码编译 lnmp
- linux下安装配置ndk开发环境
- hdu-5442(后缀数组,2015网络赛长春赛区)
- 嘿嘿 哈哈 无声的无声
- genymotion不能启动