如何识别Python中的任意四个int

2024-04-25 06:50:41 发布

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

我正在尝试搜集一系列类似以下三个示例的网站:

www.examplescraper.com/fghxbvn/17901234.html
www.examplescraper.com/fghxbvn/17911102.html
www.examplescraper.com/fghxbvn/17921823.html

请记住,有200个这样的网站,我想通过循环迭代,而不是复制和粘贴到脚本每个网站。你知道吗

如果基数是www.examplescraper.com/fghxbvn/,那么就有一年,后跟四个不遵循模式的数字,然后是.html。你知道吗

所以在第一个网站:

base = www.examplescraper.com/fghxbvn/
year = 1790
four random digits = 1234.html

我想调用(在beautiful soup中)一个url,其中url:

url = base + str(year) + str(any four ints) + ".html"

我的问题:

我如何(在Python中)识别任何四个数字?它们可以是任何数字。我不需要生成四个整数或返回四个整数,我只需要Python接受任意四个整数就可以将它们输入到漂亮的汤中。你知道吗


Tags: comurl示例base网站粘贴htmlwww
3条回答

相关:

Python regex findall numbers and dots

蓝图:

import re
regex = re.compile(r'2011\d{4}')
print regex.match(your_string)

当然:你读过正则表达式:

http://docs.python.org/library/re.html

在处理url时,只要有可能,就应该考虑使用urlparse模块。 这适用于解析url。但您的URL不是urlparse的格式良好的URL。(提示:它不是以scheme/protocol'http'开头的)。你知道吗

对于您的特定任务,可以使用正则表达式,类似于:

>>> s = 'www.examplescraper.com/fghxbvn/17901234.html'  
>>> import re
>>> p = re.compile('(\d{4,4}).html')
>>> p.search(s).groups()[0]
'1234'

我并不完全理解你的问题,但是你可以使用re模块轻松地解析出一个特定格式的文本,就像你在这里看到的那样。例如:

>>> import re
>>> url = "www.examplescraper.com/fghxbvn/17901234.html"
>>> re.match( "(\S+/)(\d{4})(\d{4}).html", url ).groups()
('www.examplescraper.com/fghxbvn/', '1790', '1234')

这会像您描述的那样将URL拆分为一个元组。请务必阅读re模块上的文档。HTH公司

相关问题 更多 >