Python:撰写搜寻结果网址

时间:2019-02-14 16:59:52

标签: python web-scraping python-requests

我想编写一个表单结果URL,而某些部分可以通过编程方式进行更改。使用 Endpoint address: http://127.0.0.1:8080/SwaggerExample/jaxrs/MyWebService WADL : http://127.0.0.1:8080/SwaggerExample/jaxrs/MyWebService?_wadl Swagger : http://127.0.0.1:8080/SwaggerExample/jaxrs/MyWebService/swagger.json requests时,我已经读过类似的问题,但是只能使用两个参数。还有什么更适合这种情况吗?

这是基础

urljoin()

这是需要更改的路线

https://navlib.forth-crs.gr/italian_b2c/npgres.exe?func=TT&ReservationType=npgres.exe%3FPM%3DBO&Leg1i=

这是需要更改的日期

BEV&Leg1ii=PRJ

这部分不需要更改

&Leg1Date=28%2F02%2F2019

1 个答案:

答案 0 :(得分:1)

使用urllib.parse.urlencode,它接受​​一个映射或两个元素的元组序列,并生成正确编码的查询字符串:

import urllib.parse

params = urllib.parse.urlencode({
    "Leg1ii": "PRJ",
    "Leg1Date": "28/02/2019",
    "TotalPassengers": "1",
    "TotalPassengersHuman": "1",
    "TotalPassengersAcce": "0",
    "TotalVehicles": "0",
})

print(f"https://navlib.forth-crs.gr/italian_b2c/npgres.exe?{params}")

结果:

https://navlib.forth-crs.gr/italian_b2c/npgres.exe?Leg1ii=PRJ&Leg1Date=28%2F02%2F2019&TotalPassengers=1&TotalPassengersHuman=1&TotalPassengersAcce=0&TotalVehicles=0