web-scraping 相关问题

Web抓取是从不易提供API或其他自动数据检索方法的网站中提取特定信息的过程。关于“如何开始使用刮擦”(例如使用Excel VBA)的问题应该*进行彻底的研究*,因为有许多功能代码示例可供使用。 Web抓取方法包括第三方应用程序,定制软件的开发,甚至是标准化方式的手动数据收集。

使用 div 标签进行网页抓取

有以下网站的截图:news ge 我想提取注释,正如您所看到的,它位于带有 c_comment 类的 div 标签下,所以我实现了以下代码: 导入

回答 1 投票 0

如何使用 JavaScript 自动共享 Reddit 帖子以解锁成就?

我正在尝试编写一个 JavaScript 脚本来自动在 Reddit 上分享帖子,以解锁“Sharing Pro”成就(需要分享 100 个帖子)。我的脚本的目的是: 找到

回答 1 投票 0

访问带有脚本的 VBA MSHTML 文档加载缓慢

为什么带有远程脚本和CSS链接的本地html文件需要很长时间才能加载 例如, </...</desc> <question vote="0"> <p>为什么带有远程脚本和CSS链接的本地html文件需要很长时间才能加载</p> <p>例如,</p> <p><script src="example.com/ajax/font.js" type="123-text/javascript"> head标签中每个有10个或更多 如果我删除 head 标签及其内容,加载文件只需不到一秒的时间 将它们留在里面,可能需要将近一分钟 它是否正在尝试连接到这些文件? 是的,外部 URL 引用的资源(即公共互联网上的资源)将从那里加载,每个使用一对 http 请求/响应,以及执行此操作所涉及的所有延迟和握手,增加了总加载时间。不一定是第一次内容绘制的时间,但肯定是直到 document.loaded 触发的时间。

回答 1 投票 0

如何使用 Puppeteer 捕获页面中的所有链接?

尝试捕获页面中的所有 console.log 返回未定义,但我不明白为什么 这是 const anchors = Array.from(document.querySelectorAll(sel));正确的? 常量木偶...

回答 2 投票 0

使用 Selenium 进行页面导航

出于个人兴趣,我想在以下网页上抓取汽车评论 www.cardekho.com/user-reviews/maruti-alto-800 我成功地用下面的代码在第一页上抓取了评论......

回答 1 投票 0

[网页抓取]使用selenium进行页面导航

出于个人兴趣,我想在以下网页上进行报废汽车评论 www.cardekho.com/user-reviews/maruti-alto-800 我使用以下代码成功取消了第一页上的评论...

回答 1 投票 0

我无法找到展览网站的Python抓取代码链接

我是Python 和网络抓取的新手。我是编程初学者,仍在练习中。我正在使用 Python 和 Selenium 进行网页抓取。并使用 Chat GPT 来帮助我。请记住,它仍然是一个

回答 1 投票 0

使用 selenium 下载 PDF

我正在尝试使用 selenium 下载 PDF,但参数 driver.download_file(file_name, target_directory) 返回“WebDriverException:您必须启用下载才能使用

回答 1 投票 0

尝试从雅虎财经网络抓取 S&P500 数据,但尽管格式正确但无法检索

我一直在尝试从雅虎财经网络抓取数据,特别是标准普尔 500 指数的历史数据,其网页网址为“https://finance.yahoo.com/quote/%5EGSPC/history/?period1=157407.. .

回答 1 投票 0

如何使用 Selenium 单击动态加载的下拉菜单?

大家下午好。 我正在尝试在以下网站上执行网络抓取:https://www.universal-assistance.com/ar-es/home.html,我面临着挑战。 该网站是动态的,我...

回答 1 投票 0

--headless 不适用于 Python selenium

这是我项目的一段代码 从硒导入网络驱动程序 从 selenium.webdriver.common.by 导入 从 selenium.webdriver.edge.service 导入服务 来自 selenium.webdriver.edge.opt...

回答 1 投票 0

我正在尝试抓取 bestbuy.com,并且我只能抓取一页而不是多个页面

从 selenium 导入 webdriver 从 selenium.webdriver.support.ui 导入 WebDriverWait 从 selenium.webdriver.chrome.service 导入服务作为 ChromeService 来自 selenium.webdriver.common.by 导入...

回答 3 投票 0

在 Python 中使用 Selenium 的数据列表中的字段

我有一个python脚本,使用selenium来自动化网页。我有一个屏幕,显示一个包含 cuits 列表的框,自动化机器人必须在这些 cuits 中搜索

回答 1 投票 0

通过什么机制导致Selenium/OpenWPM爬虫过度超时并退出?

我正在使用 Selenium 和 OpenWPM 来抓取网页并与网页交互。在某些网站上,所有元素似乎都已成功加载,但是当我尝试抓取特定元素(具有特定属性)时......

回答 1 投票 0

我正在使用docker自定义网络驱动程序macvlan运行splash容器

splash 未暴露在端口 8050 上。 #!/bin/bash # 自定义网络名称 NETWORK_NAME="我的网络" # 循环启动50个容器 对于我在{1..20} 做 docker 运行 -d \ --名称splash_$i \ ...

回答 1 投票 0

从元内容中提取文本

让我们假设我们有以下网站:第比利斯的房屋价格 我已经实现了我的代码片段及其相应的结果: div_class =content.find_all("...

回答 1 投票 0

在 R 中使用 rvest 抓取的西里尔文文本的编码问题

我正在尝试使用 R 中的 rvest 包抓取包含西里尔文字的俄罗斯媒体网页。 但是,对于某些页面(并非全部由于某种原因)我遇到了编码问题......

回答 1 投票 0

启动 Selenium chrome 驱动程序最小化(或等效)

我正在制作一个网页抓取程序,但为了避免被反抓取软件阻止,我必须让驱动程序脱离无头模式。有时我还需要重新启动驱动程序来清除c...

回答 2 投票 0

zoopla api注册网址框不允许为空

我正在设置一个从 Zoopla 进行网页抓取的程序,并尝试注册 API 密钥,但意识到我需要输入一个网站。不知道要放在这里什么,因为我计划运行代码......

回答 1 投票 0

无法在Python和Selenium中获取HTML中元素的值

我正在尝试使用下面 html 中的 class="lnsTableCell lnsTableCell--left" 将 DE(德国) 和 IN(印度) 打印到列表中,以便稍后创建 CSV。 我正在尝试使用下面 html 中的 DE(GERMANY) and IN(INDIA) 将 class="lnsTableCell lnsTableCell--left" 打印到列表中,以便稍后创建 CSV。 <div role="gridcell" tabindex="0" data-test-subj="dataGridRowCell" class="euiDataGridRowCell euiDataGridRowCell--stripe euiDataGridRowCell--firstColumn" style="position: absolute; left: 0px; top: 73px; height: 34px; width: 100px;"> <div class="euiDataGridRowCell__expandFlex"> <div class="euiDataGridRowCell__expandContent"> <div data-datagrid-cellcontent="true" class="euiDataGridRowCell__truncate"> <div data-test-subj="lnsTableCellContent" class="lnsTableCell lnsTableCell--left">IN(INDIA)</div> </div><p class="euiScreenReaderOnly">Row: 2; Column: 1</p> </div> ... <div role="gridcell" tabindex="0" data-test-subj="dataGridRowCell" class="euiDataGridRowCell euiDataGridRowCell--stripe euiDataGridRowCell--firstColumn" style="position: absolute; left: 0px; top: 73px; height: 34px; width: 100px;"> <div class="euiDataGridRowCell__expandFlex"> <div class="euiDataGridRowCell__expandContent"> <div data-datagrid-cellcontent="true" class="euiDataGridRowCell__truncate"> <div data-test-subj="lnsTableCellContent" class="lnsTableCell lnsTableCell--left">DE(GERMANY)</div> </div><p class="euiScreenReaderOnly">Row: 3; Column: 1</p> </div> 这是我的代码: def capture_data_1(): url_scrape = "https://kibana-xxyyzzz.com/app/dashboards#/view/8d3382c0-49cd-11ed-b4e3-3d78365d2c94?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-1w,to:now))" chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-dev-shm-usage') # moves to /tmp chrome_options.add_argument('--disable-gpu') driver = webdriver.Chrome(options=chrome_options) driver.get(kibana_eu_prd.login_url) wait = WebDriverWait(driver, 20) wait.until(EC.element_to_be_clickable((By.NAME, "username"))).send_keys(kibana_user_id) wait.until(EC.element_to_be_clickable((By.NAME, "password"))).send_keys(kibana_user_pass) submit_button = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "euiButton__text"))) submit_button.click() time.sleep(5) driver.get(url_scrape) # countries = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.lnsTableCell.lnsTableCell--left"))) # Works but only print INDIA countries = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="i19971251-9fb6-11ef-b33e-c91f069ea574"]/div/div/div/div[2]/div/div/div/div'))) print(countries.text) for country in countries: print(country.text) capture_data_1() 我收到的错误是: Traceback (most recent call last): File "data_scrape.py", line 89, in capture_data_1 countries = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="i19971251-9fb6-11ef-b33e-c91f069ea574"]/div/div/div/div[2]/div/div/div/div'))) File "/var/lib/jenkins/.local/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 105, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: Stacktrace: #0 0x5609b1b7c10a <unknown> #1 0x5609b1697460 <unknown> #2 0x5609b16e3f96 <unknown> #3 0x5609b16e4221 <unknown> #4 0x5609b17295d4 <unknown> #5 0x5609b170803d <unknown> #6 0x5609b1726af6 <unknown> #7 0x5609b1707db3 <unknown> #8 0x5609b16d6c10 <unknown> #9 0x5609b16d7bee <unknown> #10 0x5609b1b4839b <unknown> #11 0x5609b1b4c338 <unknown> #12 0x5609b1b35ebc <unknown> #13 0x5609b1b4ceb7 <unknown> #14 0x5609b1b1b10f <unknown> #15 0x5609b1b6a828 <unknown> #16 0x5609b1b6a9f0 <unknown> #17 0x5609b1b7af86 <unknown> #18 0x7f40f2386609 start_thread During handling of the above exception, another exception occurred: Traceback (most recent call last): File "data_scrape.py", line 109, in <module> capture_data_1() File "data_scrape.py", line 104, in capture_data_1 raise Exception(error) Exception: Message: Stacktrace: #0 0x5609b1b7c10a <unknown> #1 0x5609b1697460 <unknown> #2 0x5609b16e3f96 <unknown> #3 0x5609b16e4221 <unknown> #4 0x5609b17295d4 <unknown> #5 0x5609b170803d <unknown> #6 0x5609b1726af6 <unknown> #7 0x5609b1707db3 <unknown> #8 0x5609b16d6c10 <unknown> #9 0x5609b16d7bee <unknown> #10 0x5609b1b4839b <unknown> #11 0x5609b1b4c338 <unknown> #12 0x5609b1b35ebc <unknown> #13 0x5609b1b4ceb7 <unknown> #14 0x5609b1b1b10f <unknown> #15 0x5609b1b6a828 <unknown> #16 0x5609b1b6a9f0 <unknown> #17 0x5609b1b7af86 <unknown> #18 0x7f40f2386609 start_thread 我尝试了以下方法,但仅导致其他类型的错误: # countries = driver.find_element(By.CLASS_NAME, "lnsTableCell.lnsTableCell--left") # countries = driver.find_elements(By.XPATH, '//*[@id="i19971251-9fb6-11ef-b33e-c91f069ea574"]/div/div/div/div[2]/div/div/div/div') # countries = driver.find_elements(By.CSS_SELECTOR, ".lnsTableCell.lnsTableCell--left") # print(wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.lnsTableCell.lnsTableCell--left"))).text) 如果您在查询中指定的国家/地区只有 2 个,那么您可以使用索引或文本等。 例如索引: # Germany "(//div[@data-test-subj='lnsTableCellContent'])[2]" #India "//div[@data-test-subj='lnsTableCellContent'])[1]" 相反,如果列表中有很多国家,那么您可以循环浏览它们。 ls_countries = driver.find_element(By.Xpath, "//div[@data-test-subj='lnsTableCellContent']") listed_countries = [] if len(ls_countries) > 0: for country in ls_countries: txt_country = country.text listed_coutries.append(txt_country) print(listed_countries) 希望这有帮助!

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.