需要登录的网站的网络抓取[重复]

Posted

技术标签:

【中文标题】需要登录的网站的网络抓取[重复]【英文标题】:Web scraping for sites that need login [duplicate] 【发布时间】:2020-09-16 21:24:06 【问题描述】:

首先,我不是 python 专家。我正在学习 python 从这个特定的游戏网站上抓取数据。 我正在尝试从需要登录的网站上抓取数据。 除非您登录此网站,否则您将看不到数据。(我附上了您登录后将看到的上述网站的页面截图) 我尝试运行以下代码:

import requests
from bs4 import BeautifulSoup

page = requests.get('<website url>')
soup = BeautifulSoup(page.content, 'html.parser')
print(soup)

在这里,我得到的结果与我没有登录到这个网站一样。 有人可以指导我需要做什么吗?

enter image description here

【问题讨论】:

你可能不得不使用 selenium selenium-python.readthedocs.io 【参考方案1】:

您可以使用requests.session() 登录,然后发出下一个请求。

例如:

import requests
from bs4 import BeautifulSoup

data = 'lEmail': '<YOUR EMAIL HERE>',
        'lPass': '<YOUR PASSWORD HERE>',
        'fbSig': 'web'

url = 'https://www.airline4.net/research_main.php?mode=search&rwy=1000&dist=25000&depId=3982&arr=0&arrId=0&fbSig=false'
login_url = 'https://www.airline4.net/weblogin/login.php'

with requests.session() as s:
    s.post(login_url, data=data).text

    # now you are logged in, just print some information:
    soup = BeautifulSoup(s.get(url).content, 'html.parser')
    print(soup.get_text(strip=True, separator='\n'))

打印:

Distance
Y class
J class
F class
Rwy
OPIS
-
SCIP
Pakistan, Islamabad
-
Chile, Isla De Pascua
19,273 km
10,827ft rwy
Market:
55%
Y class
473
J class
221
F class
129
OPIS
-
NTGJ
Pakistan, Islamabad
-
French Polynesia, Totegegie
17,075 km
6,562ft rwy
Market:
67%
Y class
286
J class
161
F class
21
OPIS
-

... and so on.

【讨论】:

谢谢,还有一个问题;有什么方法可以使用我们打印的输出作为输入。这里,url='https://www.airline4.net/research_main.php?mode=search&amp;rwy=1000&amp;dist=25000&amp;depId=3982&amp;arr=0&amp;arrId=0&amp;fbSig=false'dist=25000 表示距离为 25000 公里。 Print 从 25000 公里开始按降序给出前 50 条路线,最后(第 50 条)结果是 16251 公里。所以现在我想创建一个循环,在 url 中使用这个 16251km 等等。我可以通过distance = input() 和更改url 使这成为可能但是有没有办法可以自动选择16251km 而不是input() @Jnana 可以,可以使用 BeautifulSoup 解析最后的结果,然后用这个值构造 url。这就是 BeautifulSoup 的用途。在我的示例中,我仅使用它来解析文本。

以上是关于需要登录的网站的网络抓取[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过登录对网站执行网页抓取

使用需要登录的 Beautiful Soup 抓取网站

抓取需要使用 BeautifulSoup 登录的网站

在获取请求中提供授权时,在需要授权的nodeJS中抓取网站?

通过 Python 中的网络抓取工具登录网站

网站爬取-案例四:知乎抓取(COOKIE登录抓取个人中心)(第一卷)