【发布时间】:2020-06-26 20:21:40
【问题描述】:
我想编写一些代码,从工作列表网站的多个页面中抓取数据。然而,目前,当我运行我的代码时,我只得到最后一页,而不是我抓取的所有页面的列表。
这是我的代码
url = 'https://ng.indeed.com/jobs?q=Business+Intelligence+Analyst&l=Nigeria&start='
for i in range(0,80,10):
page = requests.get(url+str(i))
soup = BeautifulSoup(page.text, 'html.parser')
jobs = []
for div in soup.find_all(name='div',attrs={'class':'row'}):
for a in div.find_all(name='a', attrs={'data-tn-element':'jobTitle'}):
jobs.append(a['title'])
summaries = []
divs = soup.findAll('div', attrs={'class':'summary'})
for d in divs:
summaries.append(d.text.strip())
jobs = pd.DataFrame(
{'title': extract_title(soup),
'summary': extract_summary(soup)
})
jobs
我使用第一个 for 循环遍历每个页面(第 2 页 = 10、3=20 等)。理想的输出是一个数据框,其中包含所有职位的列表和每个职位的摘要。但是我只从最后一页得到一个包含作业的数据框
【问题讨论】:
-
将您的列表移到 for 循环之外,它应该可以解决问题
标签: python pandas beautifulsoup python-requests