Heim  >  Artikel  >  Backend-Entwicklung  >  Wie Python das Crawlen von Website-Codebeispielen implementiert, für die eine Anmeldung erforderlich ist

Wie Python das Crawlen von Website-Codebeispielen implementiert, für die eine Anmeldung erforderlich ist

黄舟
黄舟Original
2017-08-20 10:26:403487Durchsuche

In diesem Artikel wird hauptsächlich Python zum Implementieren des Crawlings von Websites vorgestellt, die angemeldet werden müssen. Er analysiert die Python-Anmeldewebsite und die damit verbundenen Betriebsfähigkeiten in Form eines vollständigen Beispiels. Freunde in Not können sich auf das Folgende beziehen

In diesem Artikel werden Beispiele für die Python-Implementierungsmethode zum Crawlen von Websites erläutert, für die eine Anmeldung erforderlich ist. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:


import requests
from lxml import html
# 创建 session 对象。这个对象会保存所有的登录会话请求。
session_requests = requests.session()
# 提取在登录时所使用的 csrf 标记
login_url = "https://bitbucket.org/account/signin/?next=/"
result = session_requests.get(login_url)
tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]
payload = {
  "username": "<你的用户名>",
  "password": "<你的密码>",
  "csrfmiddlewaretoken": authenticity_token # 在源代码中,有一个名为 “csrfmiddlewaretoken” 的隐藏输入标签。
}
# 执行登录
result = session_requests.post(
  login_url,
  data = payload,
  headers = dict(referer=login_url)
)
# 已经登录成功了,然后从 bitbucket dashboard 页面上爬取内容。
url = &#39;https://bitbucket.org/dashboard/overview&#39;
result = session_requests.get(
  url,
  headers = dict(referer = url)
)
# 测试爬取的内容
tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class=&#39;repo-name&#39;]/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]
print(bucket_names)

Das obige ist der detaillierte Inhalt vonWie Python das Crawlen von Website-Codebeispielen implementiert, für die eine Anmeldung erforderlich ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn