Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检测和提取url中的页码?_Python_Python 3.x - Fatal编程技术网

Python 如何检测和提取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

我需要帮助从这个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=&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