我正在迭代 csv 文件中的多个 URL; URL 具有以下结构:
http://www.parool.nl/parool/nl/4024/AMSTERDAM-CENTRUM/article/detail/3751723/2014/09/21
http://www.parool.nl/parool/nl/5/POLITIEK/article/detail/3751624/2014/09/20/VVD-wil- boete-van-250-euro-voor-het-naroepen-van-vrouwen.dhtml
等等,
我需要获取文章类别(在第四个斜杠之后,在本例中为“AMSTERDAM-CENTRUM”和“POLITIEK”),并将它们附加到列表中。
我正在使用 urllib2:
reader=CsvUnicodeReader(open("my.csv","r"))
for row in reader:
url = row[0]
req=urllib2.Request(url)
有没有办法解析URL?
最佳答案
您可以使用urlparse.urlparse
将 URL 拆分为其组件并可靠地提取路径组件,然后使用 regular expression提取您感兴趣的路径的类别部分:
from urlparse import urlparse
import re
URLS = ["http://www.parool.nl/parool/nl/4024/AMSTERDAM-CENTRUM/article/detail/3751723/2014/09/21",
"http://www.parool.nl/parool/nl/5/POLITIEK/article/detail/3751624/2014/09/20/VVD-wil-boete-van-250-euro-voor-het-naroepen-van-vrouwen.dhtml"]
pattern = re.compile("/parool/nl/\d*/(.*?)/article/detail/.*$")
for url in URLS:
parsed = urlparse(url)
match = pattern.match(parsed.path)
if match:
category = match.group(1)
print category
输出:
AMSTERDAM-CENTRUM
POLITIEK
<小时/>
正则表达式注释:
\d*
匹配任意数字 (0-9) 0 到多次/(.*?)/
匹配两个斜杠之间的任何字符零次到多次,非贪婪,并为斜杠之间的部分创建一个组
关于python - 在Python中从URL中提取片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25964003/