遍历URL列表并获取选定文本

2024-05-05 19:59:27 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我正在尝试编写一个脚本,该脚本将从URL列表(在本例中为工作列表)中提取指定信息,然后使用每个工作列表页面上的指定信息(来自html)将其写入文件。关于写入一个我现在不太关心的文件的部分,我更关注的是能够从指定的链接中提取所需的信息。我编写此代码是为了创建感兴趣的URL列表:

import requests
from bs4 import BeautifulSoup

# Get links for all open listings
mainpage = requests.get('https://www.digitalmarketplace.service.gov.uk/digital-outcomes-and-specialists/opportunities?q=&statusOpenClosed=open%27%27%27')
soup = BeautifulSoup(mainpage.text, 'html.parser')
link_list = []

for opps in soup.findAll('li', class_='app-search-result'):
    links = opps.h2.a.get('href')
    open_links = ('https://www.digitalmarketplace.service.gov.uk/%27+links')
    link_list.append(open_links)
# print(link_list[25])

这很好,因为我可以通过索引选择所需的链接。在下一部分中,我将尝试编写一个For循环,该循环将遍历link_列表中的每个链接,然后获取相应链接的指定信息

# Write for loop hat grabs specified information
for idx, item in enumerate(link_list[0:]):
    open_opps = requests.get(open_links)
    open_soup = BeautifulSoup(open_opps.text, 'html.parser')
    closing_date = open_soup.findAll(class_="govuk-summary-listvalue")[2].text
    summary = open_soup.findAll(class_="govuk-summary-listvalue")[3].text

print(closing_date[25])

在上面的代码中,我试图提取第24份工作清单的截止日期,但收到一个错误:

closing_date = open_soup.findAll(class_="govuk-summary-listvalue")[2].text
IndexError: list index out of range

我想知道我如何写这篇文章,这样我就可以提取指定的信息,如第二份工作清单的截止日期。任何帮助都将不胜感激,谢谢


1条回答
网友
1楼 · 发布于 2024-05-05 19:59:27

在分析截止日期时,您使用了错误的xpath类

 closing_date = open_soup.findAll(class_="govuk-summary-list__value")[2].text
 summary = open_soup.findAll(class_="govuk-summary-list__value")[3].text

使用govuk-summary-list__value作为类值而不是govuk-summary-listvalue

相关问题 更多 >