我试图废弃一个网站,但这个产品没有href
link: https://es.wallapop.com/app/search?keywords=monitor&filters_source=search_box&latitude=39.46895&longitude=-0.37686
我用 selenium 来浏览网页,用beautifulsoup来消化结果,但是如果我想打开每一个产品来获取更多的数据,我不知道该怎么做
我试图废弃一个网站,但这个产品没有href
link: https://es.wallapop.com/app/search?keywords=monitor&filters_source=search_box&latitude=39.46895&longitude=-0.37686
我用 selenium 来浏览网页,用beautifulsoup来消化结果,但是如果我想打开每一个产品来获取更多的数据,我不知道该怎么做
3条答案
按热度按时间kt06eoxx1#
您可以使用他们的Ajax API来下载有关项目的信息(其中一个信息是URL):
图纸:
编辑:要获取下一页的产品,您可以添加
start=
参数到URL:cqoc49vn2#
你可以使用wallapop的API来获取这些数据。有很多方法可以处理这些数据,我建议使用Scrapy框架。下面是使用Scrapy获取项目url(以及将项目数据保存为json文件)的代码:
我通过浏览器开发工具上的网络流量发现了这两个API端点。我使用瓦伦西亚的纬度和经度值以及“monitor”作为关键字。运行查询所需的参数是关键字、纬度和经度。
我还可以建议在estela这样的spider管理解决方案上运行Crawler。
e4yzc0pl3#
虽然我认为API更高效,但如果你想要 selenium +bs4解决方案,这是一个例子。
使用这些功能:
您可以在结果页面上循环浏览这些卡片,单击每个卡片打开一个新选项卡并抓取产品详细信息
一些注意事项:
scrollClick
调用是针对"Load More"按钮的-只需单击一次,然后向下滚动时会加载更多结果。scrapedLinks
似乎没有必要,因为似乎没有任何重复的过滤掉。[这只是一个习惯,因为有些网站确实有重复,特别是如果有分页...]maxItems
设置为None
[或者一个非常大的数字],它应该会一直滚动和抓取,直到products
应该是a list of dictionaries,每个都包含关于不同产品的详细信息。结果应类似于
顺便说一句,你也可以用panda
.to_csv
之类的东西来保存结果