Python爬虫 - 处理登录

Python爬虫 - 处理登录 首页 / 网络爬虫入门教程 / Python爬虫 - 处理登录

在上一章中,无涯教程已经看到了抓取动态网站。在本章中了解对基于用户输入的网站(即基于表单的网站)的抓取。

如今,WWW正朝着社交媒体以及用户生成的内容发展,因此出现了一个问题,如何才能访问登录之外的信息?为此,需要处理表单和登录名。

在前几章中,使用HTTP GET方法来请求信息,但是在本章中,将使用HTTP POST方法将信息推送到Web服务器进行存储和分析。

登录表单交互

在本节中,将借助Python请求库处理一个简单的提交表单。

首先,需要导入requests 请求库,如下所示:

import requests

现在,需要提供有关登录表单字段的信息。

parameters={‘Name':'Enter your name','Email-id':'Your Emailid','Message':'Type your message here'}

在下一行代码中,需要提供将在其中进行表单操作的URL。

r=requests.post(“enter the URL”, data=parameters)
print(r.text)

运行脚本后,它将返回发生操作的页面的内容。

假设您要使用该表单提交任何图像,那么使用request.post()非常简单,您可以在以下Python脚本的帮助下理解它-

import requests
file={‘Uploadfile': open('C:\Usres\desktop\123.png',‘rb')}
r=requests.post(“enter the URL”, files=file)
print(r.text)

加载服务器Cookie

Cookie(有时称为Web Cookie或Internet Cookie)是从网站发送的一小段数据,计算机将其存储在Web浏览器中的文件中。

在处理登录表单时,cookie可以是两种类型。第一部分在上一节中介绍的,它允许向网站提交信息,第二部分可以在访问网站期间始终保持永久的"登录"状态。对于第二种形式,网站使用Cookie来跟踪谁已登录和谁未登录。

如今,大多数网站都使用Cookie进行跟踪,可以通过以下步骤了解Cookie的工作方式-

第1步   -   首先,该网站将对无涯教程的登录信息存储在浏览器的Cookie中。

第2步   -   接下来,网站将使用cookie作为身份验证的证明。

在以下的帮助下跟踪cookie非常容易Python 请求库,如下所示-

import requests
parameters={‘Name':'Enter your name','Email-id':'Your Emailid','Message':'Type your message here'}
r=requests.post(“enter the URL”, data=parameters)

在上面的代码行中,URL是将作为登录表单处理器的页面。

print(‘The cookie is:')
print(r.cookies.get_dict())
print(r.text)

运行上述脚本后,将从上次请求的输出中检索Cookie。

Cookie的另一个问题是,有时网站会不经警告就频繁修改Cookie。这种情况可以通过 requests.Session()处理,如下所示:

import requests
session=requests.Session()
parameters={‘Name':'Enter your name','Email-id':'Your Emailid','Message':'Type your message here'}
r=session.post(“enter the URL”, data=parameters)

在上面的代码行中,URL是将作为登录表单处理器的页面。

print(‘The cookie is:')
print(r.cookies.get_dict())
print(r.text)

自动执行表单

在本节中将处理一个名为Mechanize的Python模块,该模块将减少工作并自动执行表单填写过程。

pip install mechanize

请注意,它仅在Python 2.x中有效。

在此示例中,将自动化填写具有两个字段(即电子邮件和密码)的登录表单的过程-

import mechanize
brwsr=mechanize.Browser()
brwsr.open(Enter the URL of login)
brwsr.select_form(nr=0)
brwsr['email']=‘Enter email'
brwsr['password']=‘Enter password'
response=brwsr.submit()
brwsr.submit()

上面的代码很容易理解。首先,无涯教程导入了mechanize模块。然后,已创建一个Mechanize浏览器对象。然后,导航到登录URL并选择表单。之后,名称和值将直接传递到浏览器对象。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

微服务架构核心20讲 -〔杨波〕

面试现场 -〔白海飞〕

Elasticsearch核心技术与实战 -〔阮一鸣〕

Netty源码剖析与实战 -〔傅健〕

移动端自动化测试实战 -〔思寒〕

Selenium自动化测试实战 -〔郭宏志〕

人人都用得上的写作课 -〔涵柏〕

全链路压测实战30讲 -〔高楼〕

结构执行力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)