gpt4 book ai didi

python - 无需 token 即可抓取受密码保护的网站

转载 作者:行者123 更新时间:2023-12-01 02:15:02 26 4
gpt4 key购买 nike

(我的英语很抱歉,我会尽力做到最好):

我是Python新手,我正在寻求一些网络抓取的帮助。我已经有一个可用的代码来获取我想要的链接,但该网站受密码保护。在我读到的很多问题的帮助下,我设法获得了一个工作代码来在登录后抓取网站,但我想要的链接在另一个页面上:

登录页面是http://fantasy.trashtalk.co/login.php

登录后的登陆页面(我用此代码抓取的页面)是 http://fantasy.trashtalk.co/

我想要的页面是http://fantasy.trashtalk.co/?tpl=classement&t=1

所以我有这个代码(一些导入可能是无用的,它们来自另一个代码):

from bs4 import BeautifulSoup
import requests
from lxml import html
import urllib.request
import re

username = 'myusername'
password = 'mypass'
url = "http://fantasy.trashtalk.co/?tpl=classement&t=1"
log = "http://fantasy.trashtalk.co/login.php"

values = {'email': username,
'password': password}

r = requests.post(log, data=values)

# Not sure about the code below but it works.
data = r.text

soup = BeautifulSoup(data, 'lxml')

tags = soup.find_all('a')

for link in soup.findAll('a', attrs={'href': re.compile("^https://")}):
print(link.get('href'))

我知道这段代码只允许我访问登录页面,然后抓取接下来的内容(登陆页面),但我不知道如何“保存”我的登录信息以访问我想要抓取的页面。

我认为我应该在登录代码后添加类似的内容,但是当我这样做时,它只会从登录页面中删除我的链接:

s = request.get(url)

我还在这里使用“with session”阅读了一些主题?但我没能成功。

任何帮助将不胜感激。感谢您抽出时间。

最佳答案

问题是您需要通过 session 对象而不是请求对象发布登录凭据来保存登录凭据。我修改了下面的代码,您现在可以访问位于 scrape_url 页面中的 html 标记。祝你好运!

import requests
from bs4 import BeautifulSoup

username = 'email'
password = 'password'
scrape_url = 'http://fantasy.trashtalk.co/?tpl=classement&t=1'

login_url = 'http://fantasy.trashtalk.co/login.php'
login_info = {'email': username,'password': password}

#Start session.
session = requests.session()

#Login using your authentication information.
session.post(url=login_url, data=login_info)

#Request page you want to scrape.
url = session.get(url=scrape_url)

soup = BeautifulSoup(url.content, 'html.parser')

for link in soup.findAll('a'):
print('\nLink href: ' + link['href'])
print('Link text: ' + link.text)

关于python - 无需 token 即可抓取受密码保护的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48424977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com