繁体   English   中英

在 html 站点的 href 内提取 url

[英]Extracting url within href on html site

我已经从 web 页面中提取了以下内容:

 <a class="Directory-listLink" data-ya-track="todirectory" href="united-states/in">Indiana</a>,
 <a class="Directory-listLink" data-ya-track="todirectory" href="united-states/ia">Iowa</a>,
 <a class="Directory-listLink" data-ya-track="todirectory" href="united-states/ks">Kansas</a>,
 <a class="Directory-listLink" data-ya-track="todirectory" href="united-states/ky">Kentucky</a>,

我只想要每个提取的href="united-states/il"部分。 目前我正在尝试这样的事情:

for state in soup_state.find('a',href=True):
    print(state['href'])

我不断收到错误:

AttributeError:ResultSet object 没有属性“查找”。 您可能将项目列表视为单个项目。 当您打算调用 find() 时,您是否调用了 find_all()?

我希望它在 for 循环中运行,以便提取每个州的 url,但目前无法

我不确定您是如何到达soup_state的,但请尝试:

for state in soup_state:
     print(state['href'])

看看它是否能解决问题。

您可以使用正则表达式来查找这些内容。

import re

lines = ['<a class="Directory-listLink" data-ya-track="todirectory" href="united-states/in">Indiana</a>',
         '<a class="Directory-listLink" data-ya-track="todirectory" href="united-states/ia">Iowa</a>',
         '<a class="Directory-listLink" data-ya-track="todirectory" href="united-states/ks">Kansas</a>',
         '<a class="Directory-listLink" data-ya-track="todirectory" href="united-states/ky">Kentucky</a>']

for l in lines:
    print(re.search('href="[^"]*"',l).group())

这将给出 output:

href="united-states/in"
href="united-states/ia"
href="united-states/ks"
href="united-states/ky"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM