抓取搜索/身份验证生成的页面

2024-05-04 12:04:30 发布

您现在位置:Python中文网/ 问答频道 /正文

溢出物

我目前正在进行一个无意的网络垃圾项目,如果我能看到有多少/哪些出版物是由某些(公共)资助产生的,这将是有用的。如果我要手动执行此操作,我会转到这个query page,键入一个授权号(如链接图像中所示),然后在这个results page上着陆,它的左上角有我想要的编号,我可以通过路径#hitCount\.top获得该编号。我遇到的问题是,我认为这里没有任何可自动使用的GET方法。例如,对于授权id 1206221,结果页面的url为:

http://apps.webofknowledge.com.proxy.library.stonybrook.edu/Search.do?product=WOS&SID=6FdNHV29fpcZSoXHZyz&search_mode=GeneralSearch&prID=b73e71a3-ddcd-443f-ab9b-282955dc3028

(注意:亲爱的读者,此URL不适用于您。我将其包括在内,以用于诊断/说明目的。)

我的第一个问题是,是否有可能拥有一个授权ID向量并自动检索出版物?如果是,那么什么R或Python包可以帮助我

谢谢你的智慧


Tags: 项目图像路径网络键入链接page手动
1条回答
网友
1楼 · 发布于 2024-05-04 12:04:30

您可以通过python使用Selenium打开查询页面,查找并关注搜索框,使用send_键输入一些输入(您案例中的授权ID),然后使用click()单击搜索按钮(或者使用SUBMIT()触发HTML表单的提交操作)。然后,Selenium将以与普通浏览器相同的方式将您带到结果页面,即使GET请求参数是以某种方式动态生成的,无论是使用JavaScript、服务器端带有cookie ID号的会话变量等等。您最终将在page_源变量中显示结果页面的HTML,您可以使用正则表达式或BeautifulSoup对其进行刮取(如果结果页面碰巧是由JavaScript之类的动态生成的,您可以再次使用Selenium在生成的页面中查找所需内容)

如果页面中的元素(如搜索框)在HTML中具有唯一的“name”或“ID”属性,则可以使用多种识别方法来识别,这通常是最简单的(否则,请尝试XPATH查询或CSS选择器)。由于您只发布了该页面的屏幕截图,因此我们无法查看源代码来准确判断哪些内容可以工作

如果您想破解代码并发布代码片段,人们可以对其进行评论。同时,这里有一些关于这项通用技术的教程,几乎可以肯定,这些教程可以适应您的网站。如果您还没有使用selenium和webdriver(例如Chromedriver),则需要使用它来设置python。这可以通过GUI运行(屏幕上将弹出一个浏览器窗口,您将看到Python填写的表单),也可以无头运行(隐藏)

https://www.scrapingbee.com/blog/selenium-python/

https://www.tutorialspoint.com/what-are-the-ways-of-submitting-a-form-in-selenium-with-python

相关问题 更多 >