Python 网络抓取 url 拆分

Python webscraping url split

我喜欢分裂 这个 url:

https://ordbok.uib.no/perl/ordbok.cgi?startpos=1&ant_bokmaal=100&ant_nynorsk=5&antall_vise=1&OPP=+n1&ordbok=bokmaal&bokmaal=%2B&spraak=bokmaal

所以应该是:

https://ordbok.uib.no/perl/ordbok.cgi?startpos=1&ant_bokmaal=

&ant_nynorsk=5&antall_vise=1&OPP=+n1&ordbok=bokmaal&bokmaal=%2B&spraak=bokmaal

因为我喜欢更改数字 100 以进入下一页。

如何在两者之间设置变量?

如果只是这个非常具体的替换,您可以使用字符串替换功能。

s="https://ordbok.uib.no/perl/ordbok.cgi?startpos=1&ant_bokmaal=100&ant_nynorsk=5&antall_vise=1&OPP=+n1&ordbok=bokmaal&bokmaal=%2B&spraak=bokmaal"

替换:

s.replace("ant_bokmaal=100", "ant_bokmaal=111")

结果:

https://ordbok.uib.no/perl/ordbok.cgi?startpos=1&ant_bokmaal=111&ant_nynorsk=5&antall_vise=1&OPP=+n1&ordbok=bokmaal&bokmaal=%2B&spraak=bokmaal'

可以看到ant_bokmall变成了111

使用format()在其中传递变量。

def url(index):
 url="https://ordbok.uib.no/perl/ordbok.cgi?startpos=1&ant_bokmaal={}&ant_nynorsk=5&antall_vise=1&OPP=+n1&ordbok=bokmaal&bokmaal=%2B&spraak=bokmaal".format(index)
 print(url)

我建议使用 re,它更快、更准确:

>>> url = "https://ordbok.uib.no/perl/ordbok.cgi?startpos=1&ant_bokmaal=100&ant_nynorsk=5&antall_vise=1&OPP=+n1&ordbok=bokmaal&bokmaal=%2B&spraak=bokmaal"
>>> re.sub(r'(?<=ant\_bokmaal\=)\d+', str(999), url)
'https://ordbok.uib.no/perl/ordbok.cgi?startpos=1&ant_bokmaal=999&ant_nynorsk=5&antall_vise=1&OPP=+n1&ordbok=bokmaal&bokmaal=%2B&spraak=bokmaal'