当前位置: 首页 > 知识库问答 >
问题:

网页刮擦W/AGE验证

蔚学真
2023-03-14

你好,我想使用python 3.x和BeautifulSoup从一个带有年龄验证弹出式窗口的网站上刮取数据。如果不点击“是”来表示“你是否超过21岁”,我就无法获得底层的文本和图像。谢谢你的支持。

编辑:谢谢,通过一些注释的帮助,我看到我可以使用cookie,但不确定如何管理/存储/调用请求包中的cookie。

编辑4:取得了一些进展,更新的代码如下。我设法在XML代码中找到了元素,现在我只需要设法单击链接。

#
import time
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from bs4 import BeautifulSoup

driver = webdriver.Firefox(executable_path=r'/Users/jeff/Documents/geckodriver') # Optional argument, if not specified will search path.
driver.get('https://www.shopharborside.com/oakland/#/shop/412');

url = 'https://www.shopharborside.com/oakland/#/shop/412'
driver.get(url)

#
driver.find_element_by_class_name('hhc_modal-body').click(Yes)

#wait.1.second
time.sleep(1)

pagesource = driver.page_source
soup = BeautifulSoup(pagesource)

#you.can.now.enjoy.soup
print(soup.prettify())

编辑新:再次卡住,这里是当前的代码。我似乎已经隔离了元素“MBTNYES”,但在运行代码时出现错误:elementClickInterceptedException:message:element在点(625,278.5500030517578),因为另一个元素遮蔽了它

 import time
 import selenium
 from selenium import webdriver
 from selenium.webdriver.common.keys import Keys
 from selenium.webdriver.support.ui import WebDriverWait
 from bs4 import BeautifulSoup

 driver = webdriver.Firefox(executable_path=r'/Users/jeff/Documents/geckodriver') # Optional argument, if not specified will search path.
 driver.get('https://www.shopharborside.com/oakland/#/shop/412');

 url = 'https://www.shopharborside.com/oakland/#/shop/412'
 driver.get(url)

 #

 driver.find_element_by_id('myBtnYes').click()

 #wait.1.second
 time.sleep(1)

 pagesource = driver.page_source
 soup = BeautifulSoup(pagesource)

 #you.can.now.enjoy.soup
 print(soup.prettify())

共有1个答案

满勇军
2023-03-14

如果您的目标是单击验证get to selenium:ps,install selenium&&get geckodriver(firefox)或chromedriver(chrome)

#Mossein~King(hi i'm here to help)
import time
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.firefox.options import Options
from BeautifulSoup import BeautifulSoup

#this.is.for.headless.This.will.save.you.a.bunch.of.research.time(Trust.me)
options = Options()
options.add_argument("--headless")
driver = webdriver.Firefox(firefox_options=options)

#for.graphical(you.need.gecko.driver.for.firefox)
# driver = webdriver.Firefox()

url = 'your-url'
driver.get(url)

#get.the.link.to.clicking
#exaple if<a class='MosseinKing'>
driver.find_element_by_xpath("//a[@class='MosseinKing']").click()

#wait.1.secong.in.case.of.transitions
time.sleep(1)

pagesource = driver.page_source
soup = BeautifulSoup(pagesource)

#you.can.now.enjoy.soup
print soup.prettify()
 类似资料:
  • 问题内容: 我的问题是:如何从网站抓取数据,但是直到单击例如“Danhsáchchậm”,该数据才显示。我已经非常认真地尝试,当您单击“Danhsáchchậm”时,这是onclick事件,该事件触发了一些javascript函数js函数之一是从服务器获取数据并将其插入标签/占位符,然后在此时,您可以使用firefox之类的方法检查数据,是的,数据将显示给网页上的用户/查看者。因此,我们又该如何以

  • 试图找出scrapy的工作原理,并使用它在论坛上查找信息。 items.py spider.py 在这个例子中,我试图获取帖子标题的论坛是:https://forum.bodybuilding.nl/fora/supplementen.22/ 然而,我一直没有得到任何结果: 类BodyBuildingSpider(BaseSpider):2017-10-07 00:42:28[scrapy.uti

  • 问题内容: 我必须在公司的Intranet上刮一个非常非常简单的页面,以使我们的内部流程之一自动化(使函数的输出成功与否)。 我发现以下示例: 来自http://blog.sitescraper.net/2010/06/scraping-javascript-webpages-in- python.html ,它几乎是完美的。我只需要能够提供身份验证即可查看页面。 我一直在浏览PyQt4的文档,但

  • 问题内容: 我已经写了很多刮板,但是我不确定如何处理无限滚动条。如今,大多数网站,Facebook,Pinterest等都有无限滚动条。 问题答案: 您可以使用硒来刮除Twitter或Facebook之类的无限滚动网站。 步骤1:使用pip安装Selenium 第2步:使用下面的代码自动执行无限滚动并提取源代码 步骤3:根据需要打印数据。

  • 我知道如何通过selenium浏览结果页面,但我不知道如何浏览结果页面。我也尝试过mechanize,但这并没有让我走得更远。这就是我现在的处境: 最终的想法是将当事人、案件编号和提交日期作为字符串存储在一个数据库中。csv。当我现在打印输出时,我得到: 感谢任何帮助。

  • 问题内容: 我取这个页面与该请求库中的Node.js,并使用解析身体cheerio。 调用已解析的响应正文,发现该页面的title属性为: …什么时候应该: 我尝试将请求库的选项设置为include ,但这似乎并没有改变任何东西。 如何保留这些字符? 问题答案: 该页面似乎是用iso-8859-1编码的。您需要通过传递并使用诸如node- iconv之 类的东西来告诉您退回未编码的缓冲区。 如果要