【问题标题】:How can I extract the URL?如何提取 URL?
【发布时间】:2017-03-06 01:31:41
【问题描述】:

我是抓取和解析的新手。我想提取网址。但我得到了

无 没有

import requests
from bs4 import BeautifulSoup

url = "xabh.com"
r = requests.get('http://xabh.com')
c = r.content

soup = BeautifulSoup(c,'lxml')

soup.find_all('meta')

for link in soup.find_all('meta'):
    print(link.get('url'))

这是

<html><head><title>XABH</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<meta content="0; url=http://www.xabh.com/scripts/detailsnew.asp?id=mar0617" http-equiv="refresh"/>
</head><body>
</body></html>

【问题讨论】:

    标签: python beautifulsoup python-requests


    【解决方案1】:

    您可以定位meta 元素,该元素包含content 内的url 子字符串。然后,您可以通过;url= 进行拆分:

    In [8]: content = soup.select_one("meta[content*=url]")["content"]
    
    In [9]: content.split(";")[-1].split("url=")[-1]
    Out[9]: 'http://www.xabh.com/scripts/detailsnew.asp?id=mar0617'
    

    或者,您可以将regular expression 应用于meta 元素的content 属性,然后重复使用相同的表达式来提取url:

    In [10]: import re
    
    In [11]: pattern = re.compile(r"url=(.*?)$")
    
    In [12]: content = soup.find("meta", content=pattern)["content"]
    
    In [13]: pattern.search(content).group(1)
    Out[13]: 'http://www.xabh.com/scripts/detailsnew.asp?id=mar0617'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-27
      • 2018-01-08
      • 2010-10-24
      • 2013-09-17
      • 1970-01-01
      • 2022-11-22
      • 2021-06-15
      • 2020-09-25
      相关资源
      最近更新 更多