我试图解析一个网站的多个页面,但我不明白如何更改url的查询(如果这是有意义的?)你知道吗
我试着创建一个下一个页面,它占据了第一个页面,每次找到下一个页面元素时都会添加+1,但我想我做不到,因为我会有多个起始URL(都是类似的)。当我尝试获取下一个页面元素的信息时,它返回以下内容:
["loadmoreresult('?networkId=24&pageNumber=2&pageSize=100&allnet=yes&networkIds=1&networkIds=2&networkIds=3&networkIds=4&networkIds=61&networkIds=98&networkIds=108&networkIds=6&networkIds=5&networkIds=22&networkIds=13&networkIds=18&networkIds=15&networkIds=16&networkIds=105&networkIds=38&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds=0&searchby=CountryCode&orderby=CountryCity&country=ES&city=&keyword=&lastCid=116490'); return false;"]
使用url.parse文件(响应.url)。我得到:
'networkId=24&pageNumber=1&pageSize=100&allnet=yes&networkIds=1&networkIds=2&networkIds=3&networkIds=4&networkIds=61&networkIds=98&networkIds=108&networkIds=6&networkIds=5&networkIds=22&networkIds=13&networkIds=18&networkIds=15&networkIds=16&networkIds=105&networkIds=38&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds=0&searchby=CountryCode&orderby=CountryCity&country=ES&city=&keyword='
我所需要做的就是创建一个使用相同方案、路径的新链接,然后更改查询。你知道吗
如果你需要更多的信息请告诉我,我真的不知道什么是更相关的你,因为我还是一个初学者。你知道吗
from urllib.parse import urlparse, urljoin
urlparse(response.url)
>>> ParseResult(scheme='https', netloc='www.wcaworld.com', path='/Directory', params='', query='networkId=24&pageNumber=1&pageSize=100&allnet=yes&networkIds=1&networkIds=2&networkIds=3&networkIds=4&networkIds=61&networkIds=98&networkIds=108&networkIds=6&networkIds=5&networkIds=22&networkIds=13&networkIds=18&networkIds=15&networkIds=16&networkIds=105&networkIds=38&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds=0&searchby=CountryCode&orderby=CountryCity&country=ES&city=&keyword=', fragment='')
response.css('a.loadmore::attr(onmouseover)').extract()
>>>["loadmoreresult('?networkId=24&pageNumber=2&pageSize=100&allnet=yes&networkIds=1&networkIds=2&networkIds=3&networkIds=4&networkIds=61&networkIds=98&networkIds=108&networkIds=6&networkIds=5&networkIds=22&networkIds=13&networkIds=18&networkIds=15&networkIds=16&networkIds=105&networkIds=38&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds=0&licenseIds=0&searchby=CountryCode&orderby=CountryCity&country=ES&city=&keyword=&lastCid=116490'); return false;"]
您需要获得
<a>
元素的基本url,这是查询字符串开始https://example.com/a/path/?query=param
之前url的一部分,因此这里的基本url将是https://example.com/a/path/
。将其保存到变量中。然后使用urllib.parse.parse_qsl
解析查询字符串,然后更新页码并将其与基本url连接起来。你知道吗输出:
相关问题 更多 >
编程相关推荐