clwn.net
当前位置:首页 >> 如何用 Python 爬取需要登录的网站 >>

如何用 Python 爬取需要登录的网站

步骤一:研究该网站 打开登录页面 进入以下页面 “bitbucket.org/account/signin”.你会看到如下图所示的页面(执行注销,以防你已经登录) 仔细研究那些我们需要提取的详细信息,以供登录之用 在这一部分,我们会创建一个字典来保存执

登录,主要是cookie会保存session id来表示身份.你需要处理登录返回的HTTP头,Set-Cookie头中包含了需要设置的cookie信息.然后,你登录后,访问所有地址时需要在你的HTTP请求报文头部中加入Cookie头、设置之前服务器返回的cookie值.以上只是最简单的登录处理,如果有验证码,那就不在这个讨论范围内了,属于图像识别的领域了.

scrapy.FormRequestlogin.pyclass LoginSpider(scrapy.Spider):name = 'login_spider'start_urls = ['hin.com'] def parse(self, response):return [scrapy.FormRequest.from_response(response, # username和password要根据实际页面的表单的name字

这个有点繁琐,告诉你,你也可能搞不定 首先请求网页,然后用你的未登录cookies去二次请求验证码,用byte类型保存在内存中,用pillow模块展示出来,你在手动输入,主程序这边用input阻塞,等你输入完,主程序向登录接口提交账号密码和验证码,然后后面就正常爬取,这是非selenium的模拟登录,这边纠正一点,凡是登录,不管你用什么模块,都属于模拟登录,并非selenium登录方式才叫模拟登录,

scrapy.FormRequest login.py class LoginSpider(scrapy.Spider):name = 'login_spider' start_urls = ['hin.com'] def parse(self, response):return [ scrapy.FormRequest.from_response( response, # username和password要根据实际页面的表单的name

# coding=utf-8 import urllib import re# 百度贴吧网址:https://tieba.baidu.com/index.html# 根据URL获取网页HTML内容 def getHtmlContent(url): page = urllib.urlopen(url) return page.read()# 从HTML中解析出所有jpg的图片的URL# 从HTML中jpg

之前写的一直没成功,原因是用的不是HTTPS相关的函数.这次仔细研究了一下,有几个需要注意的点,一个是POST模拟登陆的时候,header中的cookie值,不同的网站应该会有不同的要求;另一个是GET页面的时候,是需要加上POST得到

>>>用httpwatch之类的请求监测插件 查看post的数据>>>再加入你的程序就可以了>>>比如urllib

推荐:《pyspider 爬虫教程(二):ajax 和 http》足兆叉虫 由于 ajax 实际上也是通过 http 传输数据的,所以我们可以通过 chrome developer tools 找到真实的请求,直接发起真实请求的抓取就可以获得数据了.ajax 一般是通过 xmlhttprequest 对象接口发送请求的,xmlhttprequest 一般被缩写为 xhr.

有账号的话,还好说,没有账号的话,并没有很好的办法,爬虫表示我并不擅长解密和渗透.

9371.net | lzth.net | 4405.net | rjps.net | 6769.net | 网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com