提问人:Ali Hamza 提问时间:4/16/2017 更新时间:4/16/2017 访问量:74
网页抓取 - 如何获取网页链接的特定部分 [已关闭]
Web Scraping - How to get a specific part of a weblink [closed]
问:
我有以下链接:https://webcache.googleusercontent.com/search?q=cache:jAc7OJyyQboJ:https://cooking.nytimes.com/learn-to-cook+&cd=5&hl=en&ct=clnk
数据集中有多个链接。每个链接都具有相同的模式。我想获取链接的特定部分,对于上面的链接,我将是上面链接的粗体部分。我想要从第二个 http 到第一个 + 号之前的文本。
我不知道如何使用正则表达式来做到这一点。我正在用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
评论