【问题标题】:BeautifulSoup4 returns the wrong HTML?BeautifulSoup4 返回错误的 HTML?
【发布时间】:2019-11-20 01:50:06
【问题描述】:

我正在尝试使用 Beautifulsoup 在 Indeed.com 上抓取职位信息。但是,当我抓取一个 URL 时,返回的 HTML 与我在 Google Chrome 中手动转到该 URL,然后查看 HTML 时看到的 HTML 不同。

这会导致我的应用程序获得一些不在我试图抓取的网页上的招聘信息。

例如,当我抓取 https://se.indeed.com/jobb?q=Internship&l=Stockholm&start=0 时,我的程序会找到以下公司名称:

[['Nordic Tech House',
  'Beaubi',
  'NO COMPANY NAME AVAILABLE',
  'National Pen',
  'SWEDISH STOCKINGS',
  'Above Agency',
  'BNP Paribas',
  'Flattered',
  'Stronger',
  'Doberman',
  'Tink',
  'Google',
  'BDO AB',
  'Amuseio AB',
  'Beaubi']]

但是,当我实际访问该网页时,并没有来自 Google、Amuseio 等的招聘信息,而且实际网页上的一些公司也不见了。

我浏览了 BeautifulSoup 在变量“soup”(见下文)中返回的 HTML 代码,并将其与网页上的实际 HTML 代码进行了比较。在 BeatifulSoup 返回的 HTML 中,肯定有 Google 和 Amuseio。但是,这与我在浏览器中检查页面时看到的 HTML 不同。

当我尝试抓取 https://se.indeed.com/jobb?q=Summer+Internship&l=Stockholm 时,一切正常。该网站没有任何分页。

这是我的代码:

from bs4 import BeautifulSoup
import requests 

source = requests.get('https://se.indeed.com/jobb?q=Internship&l=Stockholm&start=0') 
#THE URL WHICH PRODUCES THE STRANGE HTML

soup = BeautifulSoup(source.text, 'lxml')

articles = soup.find_all('div', class_='jobsearch-SerpJobCard') 
#All job postings seem to be in a div with the class mentioned above. 

def withdraw_company_names():
    lst_of_company_names = []
    for posting in articles:
        try:
            Company = posting.find('span', class_='company').text.strip()
        except:
            Company = "NO COMPANY NAME AVAILABLE"
        print("Name: ", Company)
        lst_of_company_names.append(Company) 

    return lst_of_company_names

基本上我想知道的:

有谁知道为什么在第一种情况下会返回错误的 HTML 代码?

亲切的问候, 丹尼尔

【问题讨论】:

    标签: python html web-scraping


    【解决方案1】:

    如果我理解正确,您希望获取所有包含详细信息的职位发布,然后由公司过滤。 你在正确的轨道上,现在你需要发出其他请求,在这种情况下,为每个帖子获取 data-jk 元素,例如:data-jk="3a919d6b1b5070ca" 并发出请求https://se.indeed.com/visajobb?jk=3a919d6b1b5070ca

    您将从该帖子中获得所有信息 现在,根据需要保存数据

    【讨论】:

      猜你喜欢
      • 2020-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多