【问题标题】:Scrape a webpage that requires acess from another url using Python使用 Python 抓取需要从另一个 url 访问的网页
【发布时间】:2018-11-24 13:38:53
【问题描述】:

我正在尝试抓取一个网页,该网页需要我通过一个 URL/链接才能访问该站点(有点像登录链接),但随后我需要通过该链接循环另一个 URL 以抓取各个页面。我知道如何抓取单个页面,而我从来不需要将 URL 循环到另一个 URL 来访问网站。

我的这个想法是正确的,还是我在这里遗漏了什么?

对不起,如果这有点令人困惑。

from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
import pyfpdf
import time
import random
timeDelay = random.randrange(5, 10)

my_url = 'http://shops3.directedje.com/JACK/product-listing.asp?CID=2065'

uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")

for a in soup.find_all('a', href=True):
    print ("href")

这是我首先需要访问 thermofisher.com/DCG 的链接

【问题讨论】:

  • 请向我们展示您已有的代码!
  • @KlausD。我已经更新了帖子
  • 您不能先访问登录页面,发送帐户凭据,然后转到所需的页面吗?
  • 是登录页面,还是thermofisher.com/DCG只需要在头部作为Referer?
  • @AfloroaieRobert 不,出于某种原因,设置此页面的人不允许人们拥有凭据,只允许他们使用提供的链接访问该站点。否则我只会将其设置为登录。

标签: python url web-scraping beautifulsoup python-requests


【解决方案1】:

编辑

您需要使用 Requests-NTLM。这将允许通过 HTTP 进行 Windows 身份验证。

import requests
from requests_ntlm import HttpNtlmAuth



requests.get("http://ntlm_protected_site.com",auth=HttpNtlmAuth('domain\\username','password'))

然后您需要遵循重定向 302 响应代码。哪个应该是你想要的网址。

【讨论】:

  • @user9269112 你说身份验证确实发生了?通过您的 Windows 凭据或 cookie?你能进一步解释一下吗?
  • @user9269112 它通过我计算机上的 Windows 凭据发生。
猜你喜欢
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多