Web Scraping - 如何获取Weblink的特定部分

时间:2017-04-15 17:21:33

标签: python string web-scraping

我有以下链接: https://webcache.googleusercontent.com/search?q=cache:jAc7OJyyQboJ:的 https://cooking.nytimes.com/learn-to-cook +&安培; CD = 5&安培; HL = EN&安培; CT = clnk

我在数据集中有多个链接。每个链接都具有相同的模式。我想获得链接的特定部分,对于上面的链接,我将是上面链接的大胆部分。我希望文字从第二个http开始到第一个+符号之前。

我不知道如何使用正则表达式这样做。我在python工作。请帮助我。

2 个答案:

答案 0 :(得分:0)

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

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:// 并以结尾)将会起作用+ 签署)

答案 1 :(得分:0)

我会选择 urlparse (Python 2)urlparse (Python 3) 以及一些重新 gex:

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