Python 如何从不使用POST的网站中获取信息

Python 如何从不使用POST的网站中获取信息,python,web-scraping,scrapy,html-select,Python,Web Scraping,Scrapy,Html Select,我需要从一个使用HTML选择过滤其内容的网站获取一些信息。然而,我很难做到这一点,因为当更改select的值时,网站不会“重新加载”,而是使用一些内部功能来获取新内容 有问题的网页是,如果我使用Chrome开发者工具来查看当我更改select的值时会发生什么。我接到这样的电话 index.php?eID=dmmjobcontrol&type=规程&uid=77&=1535893178522 有趣的是,uid是select选项的id,因此我们得到了正确的id。然而,当我转到这个链接时,我只得到一个

我需要从一个使用HTML选择过滤其内容的网站获取一些信息。然而,我很难做到这一点,因为当更改select的值时,网站不会“重新加载”,而是使用一些内部功能来获取新内容

有问题的网页是,如果我使用Chrome开发者工具来查看当我更改select的值时会发生什么。我接到这样的电话

index.php?eID=dmmjobcontrol&type=规程&uid=77&=1535893178522

有趣的是,uid是select选项的id,因此我们得到了正确的id。然而,当我转到这个链接时,我只得到一个页面,上面写着null

考虑到类似的网站。当我在那里更改select表单时,我会得到一个表单数据,我可以使用它来获取我想要的信息


我是一个相当新的刮,老实说,我不明白我如何才能得到这个信息。如果是为了某种用途,我正在使用python中的scrapy来解析来自网站的信息。

一个解决方案是使用客户端层,它同时执行:您的scraping脚本和网站发送的所有javascript,模拟真实的浏览器。我成功地将PhantomJS与Selenium aka Webdriver API结合使用:

请注意,从历史上看,Selenium是第一个这样做的产品,这是该API的名称。在我看来,PhantomJS更合适,默认情况下headless不运行任何GUI进程,速度更快。Selenium和PhantomJS都实现了一个称为Webdriver的协议,Python程序将使用该协议

这听起来可能很复杂,但请使用上面引用的入门文档并检查它是否适合您

编辑: 本文还包含使用所述设置的简单示例:

请注意,在许多文章中,人们做了类似的测试工作,因此甚至没有提到术语刮削。但从技术上讲,这是一样的——模拟用户在浏览器中单击,最后从特定页面元素获取数据