好的,我只想知道我最好的行动计划是什么,以及我需要哪些工具/框架:
1。登录网页
2. 导航到所需的页面,需要点击按钮,然后填写要搜索的文本框
3-4 循环播放
3. 从页面抓取html并存储在本地txt文件中
4. 分析文本文件,如果字符串符合某些条件,请通过电子邮件通知我已找到匹配项
我的过程是使用scrapy来获取数据,但我不确定如何浏览页面并提供输入(例如登录凭据和按钮导航)这让我想要使用selenium(在工作中使用它,所以我'我觉得相当舒服)但我不确定这是不是最好的方法。
感谢任何指导!
答案 0 :(得分:2)
很多时候,"点击按钮"和"填写表格"并不要求你真正做任何这些事情。它只是浏览器用来从您那里获取数据的方法,然后通过POST将其提交给服务器。您实际上可以直接执行这些POST请求。
使用Javascript,同样的事情正在发生,它只是在不重新加载页面的情况下提交POST,并使用新数据修改当前页面。
对于大多数情况,您只需确定POST的位置,以及需要填写的字段,然后自行完成。一些好的起点是Using FormRequest.from_response() to simulate a user login,而SO Scrapy/Ajax question。
这将允许您简化并坚持使用Scrapy,而不是使用Selenium获取整个页面内容,并将数据传递到文件中的Scrapy,所有这些都显着更慢。
顺便说一句,如果您确实想要使用Selenium,并希望之后能够解析数据,请不要使用Scrapy。它是一个完整的框架,并且不适合解析HTML。相反,使用它的解析库,提到parsel
eLRuLL,或使用BeautifulSoup4
`(文档和主页是here)
答案 1 :(得分:1)
对于解析正文,当然scrapy
是最佳选择,但您也可以使用parsel
仅使用选择器。
要发送电子邮件,您应该配置一个smtp客户端,this article更好地解释它。