【发布时间】:2021-04-10 23:31:09
【问题描述】:
我想通过使用 BeautifulSoup 来抓取这个website,首先提取每个链接,然后一个一个地打开它们。打开它们后,我想抓取公司名称、股票代码、证券交易所,并在可用时提取多个 PDF 链接。之后它会将它们写在一个 csv 文件中。
为了实现它,我首先尝试这种方式:
import requests
from bs4 import BeautifulSoup
import re
import time
source_code = requests.get('https://www.responsibilityreports.co.uk/Companies?a=#')
soup = BeautifulSoup(source_code.content, 'lxml')
data = []
links = []
base = 'https://www.responsibilityreports.co.uk'
for link in soup.find_all('a', href=True):
data.append(str(link.get('href')))
print(link)
try:
for link in links:
url = base + link
req = requests.get(url)
soup = BeautifulSoup(req.content, 'html.parser')
for j in soup.find_all('a', href=True):
print(j)
except:
pass
据我所知,本网站不禁止爬虫。但是,虽然它实际上为我提供了每个链接,但我无法打开它们,这让我无法让我的爬虫继续执行以下任务。
提前致谢!
【问题讨论】:
-
您正在更改
soup对象,就在它迭代的过程中。您需要先将所有链接提取到一个列表中,然后才开始获取这些链接。
标签: python web-scraping beautifulsoup