大发幸运飞艇_大发幸运飞艇官网

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

时间:2020-01-04 13:41:06 出处:大发幸运飞艇_大发幸运飞艇官网

bucket_names = [bucket.text_content.replace("n", "").strip() for bucket inbucket_elems]

打开登录页面

)

"password": "<PASSWORD>",

lxml

步骤三:爬取内容

亲戚当人们都 只是按照以下步骤进行:

headers = dict(referer = url)

print bucket_names

result = session_requests.get(

)

请记住,这是你这人网站的有有一4个具体案例。之某些你这人登录表单很简单,但某些网站只是上能亲戚当人们都 检查浏览器的请求日志,并找到登录步骤中应该使用的相关的 key 值和 value 值。

data = payload,

步骤2:执行登录网站

教程中的代码上能从我的 Github 中找到。

result = session_requests.get(login_url)

只是另有有一4个。

在本教程中,我使用了以下包(上能在 requirements.txt 中找到):

进入以下页面 “bitbucket.org/account/signin”。我能 看完如下图所示的页面(执行撤出 ,以防你只是登录)

为了测试以上内容,亲戚当人们都 从 bitbucket dashboard 页面上爬取了项目列表。亲戚当人们都 将再次使用 xpath 来查找目标元素,清除新行中的文本和空格并打印出结果。只是一切都运行 OK,输出结果应该在等你 bitbucket 账户中的 buckets / project 列表。

authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]

首先,亲戚当人们都 要创建 session 对象。你这人对象会允许亲戚当人们都 保存所有的登录会话请求。

之类:

}

payload = {

只是你在学习Python的过程中遇见了某些大大问题 和大大问题 ,上能加-q-u-n   227 -435-4400上面有软件视频资料免费

login_url,

第二,亲戚当人们都 要从该网页上提取在登录时所使用的 csrf 标记。在你这人例子中,亲戚当人们都 使用的是 lxml 和 xpath 来提取,亲戚当人们都 也上能使用正则表达式只是某些的某些方法 来提取哪几个数据。

接下来,亲戚当人们都 要执行登录阶段。在你这人阶段,亲戚当人们都 发送有有一4个 POST 请求给登录的 url。亲戚当人们都 使用前面步骤中创建的 payload 作为 data 。也上能为该请求使用有有一4个标题并在该标题中我能 是什么相同的 url 加在有有一4个参照键。

最后亲戚当人们都 只是得到有有一4个之类另有有一4个的字典:

你也上能通过检查从每个请求返回的情况代码来验证哪几个请求结果。它不想经常能我能 知道登录阶段算不算成功的,只是上能用来作为有有一4个验证指标。

session_requests = requests.session()

在你这人累积,亲戚当人们都 会创建有有一4个字典来保存执行登录的详细信息:

login_url = "https://bitbucket.org/account/signin/?next=/"

headers = dict(referer=login_url)

爬取所上能的数据

最近我上能执行一项从有有一4个上能登录的网站上爬取某些网页的操作。它不出 我我要我象中不出 简单,只是我决定为它写有有一4个辅助教程。

bucket_elems = tree.findall(".//span[@class='repo-name']/")

现在,亲戚当人们都 只是登录成功了,亲戚当人们都 将从 bitbucket dashboard 页面上执行真正的爬取操作。

result = session_requests.post(

tree = html.fromstring(result.content)

"csrfmiddlewaretoken": "<CSRF_TOKEN>"

提取登录上能的详细信息

import requests

result.status_code # 会返回给亲戚当人们都 最后一次请求的情况

tree = html.fromstring(result.text)

requests

"username": "<USER NAME>",

from lxml import html

result.ok # 会真不知道们最后一次请求算不算成功

执行站点登录

仔细研究哪几个亲戚当人们都 上能提取的详细信息,以供登录之用

步骤一:研究该网站

**更多关于xpath 和lxml的信息上能在这里找到。

对于你这人脚本,亲戚当人们都 只上能导入如下内容:

1. 右击 “Username or email” 字段,选择“查看元素”。亲戚当人们都 将使用 “name” 属性为 “username” 的输入框的值。“username”只是是 key 值,亲戚当人们都 的用户名/电子邮箱只是对应的 value 值(在某些的网站上哪几个 key 值只是是 “email”,“ user_name”,“ login”,等等)。

3. 在源代码页面中,查找有有一4个名为 “csrfmiddlewaretoken” 的隐藏输入标签。“csrfmiddlewaretoken” 将是 key 值,而对应的 value 值将是你这人隐藏的输入值(在某些网站上你这人 value 值只是是有有一4个名为 “csrftoken”,“ authenticationtoken” 的隐藏输入值)。列如:“Vy00PE3Ra6aISwKBrPn72SFml00IcUV8”。

url,

2. 右击 “Password” 字段,选择“查看元素”。在脚本中亲戚当人们都 上能使用 “name” 属性为 “password” 的输入框的值。“password” 将是字典的 key 值,亲戚当人们都 输入的密码将是对应的 value 值(在某些网站key值只是是 “userpassword”,“loginpassword”,“pwd”,等等)。

url = 'https://bitbucket.org/dashboard/overview'

在本教程中,亲戚当人们都 将从亲戚当人们都 的bitbucket账户中爬取有有一4个项目列表。

热门

热门标签