【问题标题】:Web Scraping - HTTP Error 403: Forbidden - Ziprecruiter网页抓取 - HTTP 错误 403:禁止 - Ziprecruiter
【发布时间】:2021-09-16 17:13:59
【问题描述】:

我正在尝试从 https://www.ziprecruiter.com/jobs-search?search=python&location=Ontario&company=&layout=&days=1 抓取数据

我尝试使用上面的链接,并且在浏览器中似乎可以正常工作。但是,当我使用下面的代码在 python 中从网站获取数据时,它似乎无法正确加载页面。

看起来它加载了一个加密的页面。

from bs4 import BeautifulSoup
import requests

response = requests.get('https://www.ziprecruiter.com/jobs-search?search=python&location=Ontario&company=&layout=&days=1')

soup = BeautifulSoup(response.text, 'html.parser')

print (soup)

【问题讨论】:

  • 您尝试过其他页面吗?您的用户代理太便宜了...使用适当的用户代理重试尝试 3,以防万一,报告错误
  • 我不是对你的问题投反对票的人......在我看来,你已经表现出明确的尝试来达成解决方案。我的评论是要添加一个更好的用户代理,比如'Mozilla/5.0 (X11; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/87.0'。如果您收到这样的响应,很明显您的请求被检测为机器人并拒绝访问
  • 感谢您的帮助!我尝试了您的解决方案并得到了 - 响应 [403]。我认为他们有你提到的一些反爬虫安全检查。
  • @Henul 你试过硒吗?我试过了,我可以获取源页面
  • 我忘了复制一行 implicitly_wait 以便有足够的时间来呈现整个页面。抱歉,答案已更新

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


【解决方案1】:

我无法找到直接的答案。但这很好用。

我基本上添加了一个 chrome 驱动程序来获取数据。方法如下:

from selenium import webdriver
driver_location = #C/program/.... (chromedriver location)

driver = webdriver.Chrome(driver_location)

driver.get('https://www.ziprecruiter.com/jobs-search?search=python&location=Ontario&company=&layout=&days=1')

content = driver.page_source

soup = BeautifulSoup(content, "html.parser")

cards = soup.find_all('div','job_content')

【讨论】:

  • 好!好吧...我不知道为什么使用 Firefox 驱动程序不起作用...更容易:) 可能是因为无头选项?
  • 是的,这可能会导致问题。
猜你喜欢
  • 2018-07-23
  • 2020-07-07
  • 1970-01-01
  • 2020-04-01
  • 2011-07-12
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多