【发布时间】:2021-11-16 15:28:44
【问题描述】:
我遇到了一个问题,我不知道该怎么做。
我已经抓取了多个页面的公司名称、位置和省份,以及指向另一个页面上的其他信息的链接。我收集的链接提供了我需要的另外 3 条信息。
我需要访问链接,取出地址、电话号码(如果有的话)和 CNAE 代码,并将其附加到之前的数据中。
我目前拥有的第一次抓取的工作脚本如下:
import requests
from bs4 import BeautifulSoup
baseurl = ["https://www.expansion.com/empresas-de/ganaderia/granjas-en-general/index.html"]
urls = [f'https://www.expansion.com/empresas-de/ganaderia/granjas-en-general/{i}.html'.format(i) for i in range(2,65)]
allurls = baseurl + urls
print(allurls)
for url in allurls:
page = requests.get(url)
soup = BeautifulSoup(page.content, "html.parser")
lists = soup.select("div#simulacion_tabla ul")
#scrape the pages
for lis in lists:
title = lis.find('li', class_="col1").text
location = lis.find('li', class_="col2").text
province = lis.find('li', class_="col3").text
link = lis.select("li.col1 a")[0]['href']
info = [title, location, province, link]
print(info)
在第二页上,数据位于一个表格中,其 id 名称如下。这是我认为我需要使用的代码,但它不起作用,我正在兜圈子试图找出原因:
section = soup.select("section#datos_empresa")
lslinks = link
for ls in lslinks
location = lis.find('tr', id_="tamano_empresa").text
cnae = lis.find('tr', id_="cnae_codigo_empresa").text
phone = lis.find('tr', id_="telefono_empresa").text
addinfo = [location, cnae, phone]
info.append(addinfo)
这是links 之一的示例
理想的输出是:
['AGRICOLA CALLEJA SL', 'CARPIO', 'VALLADOLID', 'https://www.expansion.com/directorio-empresas/agricola-calleja-sl_1480101_A02_47.html', C/ LA TORRE, 2., 150, 983863247 ]
我会将其写入文本文件,以便将其导入 excel。
任何帮助将不胜感激!
干杯!
【问题讨论】:
-
那么您对该页面的预期输出是什么? (请edit您提出问题以包含它 - 或者至少是它的一个起始示例)
-
会做的,我只是从 python 和 stack 开始,所以我的边缘有点粗糙!
标签: python loops web-scraping beautifulsoup