用等价正则表达式提取链接的靓汤

2024-10-02 00:33:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过python随机浏览网页垃圾。我有google搜索结果页面的链接。我使用url lib来提取GOOGLE搜索结果页面中的所有链接。从google的解析页面中,我在Beautiful Soup library的帮助下提取了所有可能的锚标签。所以现在我有很多链接。在这些我想挑选符合我所需的模式选择的链接。 例如,我想选择所有这样的行: 这是解析的许多链接之一。但是我想缩小像这样的链接的结果 你知道吗

/url?q=http://avadl.uploadt.com/DL4/Film/&sa=U&ved=0ahUKEwiYwOKe1r7hAhWUf30KHcHUBkMQFggUMAA&usg=AOvVaw39cIJ0T8_CAQMY8EkSWZJl

在这些选择中,我只需要提取这一部分

http://avadl.uploadt.com/DL4/Film/

我试过这个和这个

possible_websites.append(re.findall('/url?q=(\S+)',links))
possible_websites.append(re.findall('/url?q=(\S+^&)',links))

这是我的密码

soup = BeautifulSoup(webpage, 'html.parser')
tags = soup('a')
possible_websites=[]
for tag in tags:
    links = tag.get('href', None)
    possible_websites.append(re.findall('/url?q=(\S+)',links))

我想用正则表达式来提取所需的文本部分。我正在使用BeautifulSoup模块提取HTML数据。简而言之,这是一个经常性的表达问题。你知道吗


Tags: recomhttpurl链接google页面links
2条回答

如果您确实需要正则表达式,请使用q=(.*/)&,否则请使用Ry-'s answer,即:

import re
u = "/url?q=http://avadl.uploadt.com/DL4/Film/&sa=U&ved=0ahUKEwiYwOKe1r7hAhWUf30KHcHUBkMQFggUMAA&usg=AOvVaw39cIJ0T8_CAQMY8EkSWZJl"
m = re.findall("q=(.*/)&", u)
if m:
    print(m[0])
    # http://avadl.uploadt.com/DL4/Film/

enter image description here

Demo

它不是regex,但我会使用urllib

from urllib.parse import parse_qs, urlparse

url = urlparse('/url?q=http://avadl.uploadt.com/DL4/Film/&sa=U&ved=0ahUKEwiYwOKe1r7hAhWUf30KHcHUBkMQFggUMAA&usg=AOvVaw39cIJ0T8_CAQMY8EkSWZJl')
qs = parse_qs(url.query)

print(qs['q'][0])

相关问题 更多 >

    热门问题