Ste*_*ner 3 javascript python selenium beautifulsoup python-requests
我正在写一个webscraper /自动化工具.此工具需要使用POST请求来提交表单数据.最后一个动作使用此链接:
<a id="linkSaveDestination" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("linkSaveDestination", "", true, "", "", false, true))'>Save URL on All Search Engines</a>
Run Code Online (Sandbox Code Playgroud)
从此表单提交数据:
<input name="sem_ad_group__destination_url" type="text" maxlength="1024" id="sem_ad_group__destination_url" class="TextValueStyle" style="width:800px;">
Run Code Online (Sandbox Code Playgroud)
我一直在使用请求和BeautifulSoup.据我所知,这些库无法与Javascript交互,人们推荐使用Selenium.但据我所知,Selenium无法进行POST.我怎么处理这个?是否可以不像Selenium那样打开实际的浏览器呢?
是.您只需将POST提交到正确的URL即可完全复制链接正在执行的操作(实际上,这最终将与单击链接时触发的javascript相同).
您可以在这里找到请求文档中的相关部分:http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests
所以,对于你的特定情况,这看起来像这样:
payload = {'sem_ad_group__destination_url': 'yourTextValueHere'}
r = requests.post("theActionUrlForTheFormHere", data=payload)
Run Code Online (Sandbox Code Playgroud)
如果您在确定实际发布的网址时遇到问题,只需在您自己手动点击链接时监控网络选项卡(在chrome dev工具中),您应该能够找到正确的请求并提取任何信息那个.
祝好运!
| 归档时间: |
|
| 查看次数: |
4477 次 |
| 最近记录: |