首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bs4/python3提取href?

使用bs4/python3提取href?
EN

Stack Overflow用户
提问于 2017-07-14 12:43:37
回答 1查看 162关注 0票数 1

我是python和bs4的新手,请对我手下留情。

代码语言:javascript
复制
#!/usr/bin/python3
import bs4 as bs
import urllib.request
import time, datetime, os, requests, lxml.html
import re
from fake_useragent import UserAgent

url = "https://www.cvedetails.com/vulnerability-list.php"
ua = UserAgent()
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'}
snkr = requests.get(url,headers=header)
soup = bs.BeautifulSoup(snkr.content,'lxml')

for item in soup.find_all('tr', class_="srrowns"):
    print(item.td.next_sibling.next_sibling.a)

打印:

代码语言:javascript
复制
<a href="/cve/CVE-2017-6712/" title="CVE-2017-6712 security vulnerability details">CVE-2017-6712</a>
<a href="/cve/CVE-2017-6708/" title="CVE-2017-6708 security vulnerability details">CVE-2017-6708</a>
<a href="/cve/CVE-2017-6707/" title="CVE-2017-6707 security vulnerability details">CVE-2017-6707</a>
<a href="/cve/CVE-2017-1269/" title="CVE-2017-1269 security vulnerability details">CVE-2017-1269</a>
<a href="/cve/CVE-2017-0711/" title="CVE-2017-0711 security vulnerability details">CVE-2017-0711</a>
<a href="/cve/CVE-2017-0706/" title="CVE-2017-0706 security vulnerability details">CVE-2017-0706</a>

无法确定如何提取/cve/CVE-2017-XXXX/部件。也许我做错了。我不需要标题或html,只需要uri。

EN

回答 1

Stack Overflow用户

发布于 2017-07-17 22:36:53

BeautifulSoup通常有太多用于过滤和获取东西的历史变体,其中一些比其他更令人讨厌。我忽略了它们中的大多数,因为否则会让人感到困惑。

对于属性,我更喜欢get(),所以这里是item.td.next_sibling.next_sibling.a.get('href'),因为如果没有这样的属性,它将返回None,而不是给出异常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45095537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档