【问题标题】:Extract specific links after extracting from BeautifulSoup从 BeautifulSoup 中提取后提取特定链接
【发布时间】:2021-11-20 06:18:31
【问题描述】:

我之前使用 BeautifulSoup4 在网页中提取了一些信息:https://www.peakbagger.com/list.aspx?lid=5651

我得到了一个href列表:

from urllib.request import urlopen
from bs4 import BeautifulSoup
import pandas as pd

url = 'https://www.peakbagger.com/list.aspx?lid=5651'
html = urlopen(url)
soup = BeautifulSoup(html, 'html.parser')

a= soup.select("a:nth-of-type(1)")
a

但我只想要链接以“peak.aspx?pid=10...”开头的那个

如何只打印出带有 'peak.aspx?pid=10...' 的那些,我需要使用循环还是拆分它?

谢谢。

【问题讨论】:

  • if 'peak.aspx?pid=10...' in url: <something> ...?

标签: python web beautifulsoup hyperlink


【解决方案1】:

一种方法可能是遍历您的选择,然后只选择包含字符串 peak.aspx?pid= 的链接:

[x['href'] for x in soup.select('a') if 'peak.aspx?pid=' in str(x)]

但您也可以指定 selector 来获取结果 - 这只会为您提供表格中的第二列及其 a 标签:

soup.select('table.gray  tr td:nth-of-type(2) a')

要获取链接,您必须遍历结果:

[x['href'] for x in soup.select('table.gray  tr td:nth-of-type(2) a')]

【讨论】:

  • 好的,我明白了。谢谢你。只是好奇如何获取网站中每个页面的纬度和经度?它有点棘手。我只能从每个单独的链接中检索,但考虑是否有更好的方法可以同时为所有链接获取纬度和经度
  • 很高兴为您提供帮助-如果此答案或任何其他答案解决了您的问题,请将其标记为已接受-someone-answers-谢谢您的方法正确,但应该提出一个单独的问题来关注您的问题有经纬度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 2013-07-19
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多