【问题标题】:Extracting href using bs4/python3? (again)使用 bs4/python3 提取href? (再次)
【发布时间】:2017-12-19 14:45:26
【问题描述】:

很抱歉重新发布这个问题。有人将问题迁移到其他网站,但没有我无法评论或编辑的 cookie。

我是python和bs4的新手,请放轻松。

#!/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)

打印:

<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>

使用推荐的字符串:

print(item.td.next_sibling.next_sibling.a.href)

打印:

None
None
None
None
None
None

不知道如何提取/cve/CVE-2017-XXXX/ 部分。 purhaps我走错了路。我不需要标题或 html,只需要 uri。

【问题讨论】:

  • 这是['href'] 而不是.href... bs 中的想法是.tag['attribute']

标签: python python-3.x url hyperlink href


【解决方案1】:

我认为您应该尝试以下方法:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 2019-01-06
    相关资源
    最近更新 更多