Python 如何检测和提取url中的页码?
我需要帮助从这个url中提取页码,这个url是Python 如何检测和提取url中的页码?,python,python-3.x,Python,Python 3.x,我需要帮助从这个url中提取页码,这个url是p=189神奇之处在于urllib模块: url = "https://portal.mvp.bafin.de/database/DealingsInfo/sucheForm.do?meldepflichtigerName=&zeitraum=0&emittentName=&d-5010980-p=189&zeitraumVon=&emittentIsin=&meldepflichtigerB
p=189
神奇之处在于urllib模块:
url = "https://portal.mvp.bafin.de/database/DealingsInfo/sucheForm.do?meldepflichtigerName=&zeitraum=0&emittentName=&d-5010980-p=189&zeitraumVon=&emittentIsin=&meldepflichtigerButton=Suche+Meldepflichtiger&zeitraumBis="
输出:
import re
url = "https://portal.mvp.bafin.de/database/DealingsInfo/sucheForm.do?meldepflichtigerName=&zeitraum=0&emittentName=&d-5010980-p=189&zeitraumVon=&emittentIsin=&meldepflichtigerButton=Suche+Meldepflichtiger&zeitraumBis="
print (re.split(r"(p=[0-9]+)&",url)[1])
您可以使用简单的正则表达式拆分,并通过这种方式捕获页码。您可以使用正则表达式:
重新导入
regex=re.compile(r'^https://portal\.mvp\.bafin\.de/database/dealinginfo/sucheForm\.do\(?:\w |/|=|-&+|-)*(?:-p=(\d+)(?:\w |/|=|-&+|-)*$)
m=regex.match(url)
page=m.groups()[0]如果m不是None,则为None
对于问题中的url
,page
将是字符串'189'
我假设您感兴趣的URL的开头总是相同的,即,
https://portal.mvp.bafin.de/database/DealingsInfo/sucheForm.do?“
;如果不是这样,您可以在regex
中从urllib.parse导入urlparse
和dict(f.split(“=”)中更改它,以在urlparse(url.query.split(“&”)['d-5010980-p']
中使用f.split(“=”)[/code>谢谢,它工作得很好。但是当我尝试刮取这个a href时失败了,任何建议请dict(f.split('=')表示URLPrasse(url)中的f.query.split(“&”)['d-5010980-p']KeyError Traceback(最近一次调用)dict(f.split('='))表示URLPrasse(url)中的f.query.split(“&”)['d-5010980-p']KeyError:'d-5010980-p'我一步一步地尝试了你的解决方案,但不适用于我,错误发生在最后一步谢谢你,先生,你能帮我解决这个类似的问题吗?
import re
url = "https://portal.mvp.bafin.de/database/DealingsInfo/sucheForm.do?meldepflichtigerName=&zeitraum=0&emittentName=&d-5010980-p=189&zeitraumVon=&emittentIsin=&meldepflichtigerButton=Suche+Meldepflichtiger&zeitraumBis="
print (re.split(r"(p=[0-9]+)&",url)[1])
p=189