网页抓取 - 如何获取网页链接的特定部分 [已关闭]

Web Scraping - How to get a specific part of a weblink [closed]

提问人:Ali Hamza 提问时间:4/16/2017 更新时间:4/16/2017 访问量:74

问:


想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

6年前关闭。

我有以下链接:https://webcache.googleusercontent.com/search?q=cache:jAc7OJyyQboJhttps://cooking.nytimes.com/learn-to-cook+&cd=5&hl=en&ct=clnk

数据集中有多个链接。每个链接都具有相同的模式。我想获取链接的特定部分,对于上面的链接,我将是上面链接的粗体部分。我想要从第二个 http 到第一个 + 号之前的文本。

我不知道如何使用正则表达式来做到这一点。我正在用python工作。请帮帮我。

python 字符串 网页抓取

评论


答:

0赞 Fernando Irarrázaval G 4/16/2017 #1

如果每个链接都具有相同的模式,则不需要正则表达式。你可以使用 string.find()剪线

link = "https://webcache.googleusercontent.com/search?q=cache:jAc7OJyyQboJ:https://cooking.nytimes.com/learn-to-cook+&cd=5&hl=en&ct=clnk"

# This finds the second occurrence of "https://" and returns the position
second_https = link.find("https://", link.find("https://")+1)
# Index of the end of the link
end_of_link = link.find("+")

new_link = link[second_https:end_of_link]

print(new_link)

这将返回“https://cooking.nytimes.com/learn-to-cook”,如果链接遵循与描述相同的模式(它是链接中的第二个 https://,以 + 号结尾),则该链接将起作用

0赞 Andrés Pérez-Albela H. 4/16/2017 #2

我会使用 urlparse (Python 2) 或 urlparse (Python 3) 和一点 regex:

import re
from urlparse import urlparse

url_example = "https://webcache.googleusercontent.com/search?q=cache:jAc7OJyyQboJ:https://cooking.nytimes.com/learn-to-cook+&cd=5&hl=en&ct=clnk"
parsed = urlparse(url_example)
result = re.findall('https?.*', parsed.query)[0].split('+')[0]
print(result)

输出:

https://cooking.nytimes.com/learn-to-cook