web-scraping 相关问题

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

使用 rvest 抓取部分受登录保护的网站

我想从网页中删除一些数据,但该页面部分受用户名/密码保护。 我想废弃仅在登录后可用的数据。我找到了如何导航...

回答 1 投票 0

使用加载更多按钮Python

我想从网站上抓取产品链接(675 个产品)。第一页只有 24 个产品,带有“显示下一个 23”按钮。我尝试了两种方法来加载更多产品,这样我就可以得到......

回答 2 投票 0

我如何编写一个代码,当输入是您的 TikTok 关注者列表时,列出所有拥有超过 ex 的人的列表。 10 000 名关注者?

我如何编写一个代码,当输入是你的 TikTok 关注者列表时,列出所有超过前的列表。 1000 名粉丝? 例如,就像我放入的所有关注者用户的 .txt 文件...

回答 2 投票 0

提取带分页的 html 表格。更改页面时 URL 不会更改

我想从以下链接中提取附件中的表格:https://www.rfi.it/en/stations.html。 但我可以提取第1页的数据。我需要提取所有页面的数据。 你们能帮我吗? T...

回答 1 投票 0

如何使用Python抓取所有评论产品

现在我正在这个网站上做刮评产品 https://www.lazada.com.my/products/xiaomi-mi-a1-4gb-ram-32gb-rom-i253761547-s336359472.html?spm=a2o4k.searchlistcategory.list.64.71546883QBZ...

回答 3 投票 0

如何使用 Selenium 在页面之间导航?

我正在尝试通过汽车列表抓取该网站 - cargurus.com。具体来说,我正在尝试从正在销售的法拉利中获取详细信息。我已经能够让它工作了,至少是第一页。哈...

回答 1 投票 0

剧作家 - 抓取 eBay 交易

来自 playwright.sync_api 导入 Playwright、sync_playwright 以sync_playwright()作为剧作家: chromium = 剧作家.chromium 浏览器= chromium.launch() 上下文 = browser.new_conte...

回答 1 投票 0

Node.js 库,仅加载 DOM 和脚本,但可以处理异步

我正在尝试加载一个页面来抓取,仅在加载多个递归异步脚本后才加载我需要的数据。但由于页面和项目的数量,无法使用 Puppeteer 或 Seleniu 之类的东西......

回答 1 投票 0

如何在 beautifulsoup 中获取文本作为 .innerText 而不是 JS 中的 .textContent

我有一个 HTML 文件,其中包含 p 标记内的文本,如下所示: Lorem ipsum dolor sat amet, consectetur adipiscing elit。 Maecenas sed mi lacu... 我有一个 HTML 文件,其中包含 p 标记内的文本,如下所示: <body> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed mi lacus. Vivamus luctus vehicula lacus, ut malesuada justo posuere et. Donec ut diam volutpat</p> </body> 使用 Python 和 BeautifulSoup 我尝试获取 p 标签中的文本,例如: with open("foo.html", 'r', encoding='utf-8') as f: soup = BeautifulSoup(f.read(), 'lxml') p = soup.p print(p.text) 结果: 'Lorem ipsum dolor sit amet, \n\t\tconsectetur adipiscing elit. \n\t\tMaecenas sed mi lacus. \n\t\tVivamus luctus vehicula lacus, \n\t\tut malesuada justo posuere et. \n\t\tDonec ut diam volutpat' 问题是我将结果与 并出现在原始文件中(如 JS 中的 .textContent)。我需要一个类似于 JS 中的 .innerText 的解决方案,它返回用户在浏览器中看到的内容。 我尝试使用p.text.replace("\n", " ").replace("\t", "")但是对于更复杂的事情,比如标签中的标签,它根本不起作用(比如不必要的空格)。 有人知道如何做到这一点吗?预先感谢! 如果我理解正确的话,您可以使用正则表达式来更改文本。考虑这个例子: from bs4 import BeautifulSoup html_text = """\ <body> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed mi lacus. <span>This is inner span.</span> Vivamus luctus vehicula lacus, ut malesuada justo posuere et. Donec ut diam volutpat</p> </body>""" soup = BeautifulSoup(html_text, "html.parser") print(soup.p.text) 打印: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed mi lacus. This is inner span. Vivamus luctus vehicula lacus, ut malesuada justo posuere et. Donec ut diam volutpat 你可以这样做: import re print(re.sub(r"\s{2,}", " ", soup.p.text)) 这会响起: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed mi lacus. This is inner span. Vivamus luctus vehicula lacus, ut malesuada justo posuere et. Donec ut diam volutpat

回答 1 投票 0

使用 rvest 和 tidyverse 的数据抓取问题

我是数据抓取的新手,我正在尝试从网页中抓取表格(https://vos.oph.fi/cgi-bin/tiedot2.cgi?saaja=1361;tnimi=kust/v08/k05k7s .lis)。 我目前正在使用 tidyverse 来完成此操作

回答 1 投票 0

如何从各种语言的 YouTube 视频中提取字幕

我使用下面的代码从 YouTube 视频中提取字幕,但它仅适用于英文视频。我有一些西班牙语视频,所以我想知道如何修改代码以扩展...

回答 2 投票 0

我无法让 Selenium Chrome 在 Docker 中使用 Python 工作

我有一个经典的“它可以在我的机器上运行”问题,我在笔记本电脑上成功运行了一个网络抓取工具,但每当我尝试在容器中运行它时,都会出现持续错误。 我的最小重现...

回答 2 投票 0

使用 playwright 抓取下拉列表

我正在努力寻找一种方法来单击下拉列表中的“全部”选项并抓取该页面内的所有内容。我看过一些帖子,但它们与...

回答 1 投票 0

需要 Python 中的网络抓取 lambda 函数的解释

我正在用Python进行网页抓取,我发现了这个: 产品 = soup.find_all('li') 产品列表 = [] 对于产品中的产品: 名称 = 产品.h2.字符串 价格 = 产品.find('p', string=l...

回答 1 投票 0

使用 Puppeteer 获取正确的选择器

这是 HTML 代码。 这是 HTML 代码。 <div class="list-row"> <div class="list-item"> <div class="imgframe"> <div class="img-wrap"> <div class="img-item"> <a href=""> <img src="img1"> </a> <div class="in-lable"> <a href="link1"> <span class="title">title1</span> </a> </div> </div> <div class="img-item"> <a href=""> <img src="img2"> </a> <div class="in-lable"> <a href="link2"> <span class="title">title2</span> </a> </div> </div> </div> </div> </div> </div> 这是我的木偶代码。 var url = 'https://booktoki348.com/novel/15670582'; await page.goto(url, {'timeout': 50000, 'waitUntil':'load'}); await page.waitForSelector('#viewcomment'); const titlesAndImage = await page.evaluate(() => { const listItems = Array.from(document.querySelectorAll('.list-item')); return listItems.map((list) => { const img = list.querySelector('img').src; const link = list.querySelector('.in-lable').getAttribute('href'); const title = list.querySelector('.in-lable').textContent; return { title, img, link }; }) }); 这是我的 console.log 测试。 Array.from(document.querySelectorAll('.img-item')).map((itemlist) => itemlist.querySelector('img').src); Array.from(document.querySelectorAll('.img-item span.title')).map((itemlist) => itemlist.textContent); 两者都可以工作,但我想将它们放在 1 个地图内,该地图位于 img-item 内,或者可以基于示例 HTML 使用任何选择器。 我期待这样的输出。 [ { 标题:'标题1', img: 'img1', 链接:'链接1' }, { 标题:'标题2', img: 'img2', 链接:'链接2' }, ] 以下解决方案使用 puppeteer 的“多重选择器”$$ 通过一个异步操作检索具有类 img-item 的所有元素。然后,它开始每个 elem 的并行异步操作,计算 DOM 表示 e 并通过同步 DOM 操作 querySelector 访问其所需的属性。 const titlesAndImage = await Promise.all( (await page.$$(".img-item")).map((elem) => elem.evaluate(function (e) { return { title: e.querySelector(".in-lable span").textContent, img: e.querySelector("img").src, link: e.querySelector(".in-lable a").href }; }) ) );

回答 1 投票 0

使用 Selenium/SeleniumBase 时,一个特定的 span 标签为空,没有属性

我正在尝试使用 Python 抓取 MLB.com 上的棒球前景数据。当我手动打开浏览器并查看源 HTML 时,我会在单个属性中看到包含我需要的所有内容的 JSON 数据

回答 1 投票 0

无法让selenium chrome在docker中与python一起工作

我有一个经典的“它可以在我的机器上运行”问题,我在笔记本电脑上成功运行了一个网络抓取工具,但每当我尝试在容器中运行它时,都会出现持续错误。 我的最小再现...

回答 1 投票 0

使用 Python BeautifulSoup 进行网页抓取

我想通过使用Python BeautifulSoup从网站上进行网页抓取来收集数据,用于我的数据分析项目。 我想从网站收集的数据; 日期: 06.07.2027 舞台:伯格海恩,

回答 1 投票 0

从没有 URL 的下拉菜单中抓取数据

我正在尝试自动化从 R 中的气候浏览器下载美国每个县的数据的过程。我感兴趣的数据要求用户从下拉菜单中选择,但我无法...

回答 1 投票 0

如何使用 C# HtmlAgilityPack 从网站中获取以下文本?

我需要在C#中使用HtmlAgilityPack从下面的结构中取出文本“223M”,我该怎么做? 我需要在C#中使用HtmlAgilityPack从下面的结构中取出文本“223M”,我该怎么做? <div data-widget="quote-options-flow-summary" data-mode="desktop" data-symbol="AAPL"> <div class="options-flow-summary"> <div data-app="summary-element" data-id="overall_flow"> <h2 class="summary-type"> Overall Flow <i class="fas fa-info-circle" title="Determined based on positive or negative net premiums."> </i> </h2> <h3 data-app="summary-value" style="color:#009c3d"> Bullish </h3> </div> <div data-app="summary-element" data-id="net_premium"> <h2 class="summary-type"> Net Premium <i class="fas fa-info-circle" title="Calculated value of calls premium minus put premium in the filtered Flow."> </i> </h2> <h3 data-app="summary-value" style="color:#009c3d"> 223M </h3> </div> </div> </div> 我是 HtmlAgilityPack 的新手,所以我不知道如何用它做任何事情,尤其是 h3 中的 data-app="summary-value" 让我感到困惑,因为我不知道这是否是我应该参考的内容我抓取文本“223M” 沿着以下路线: var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(html); string premium = htmlDoc.DocumentNode .SelectSingleNode("//div[@data-id='net_premium']").SelectSingleNode("h3[@data-app='summary-value']").InnerText; 函数中的字符串是XPath expressions https://html-agility-pack.net/select-single-node http://dotnetfiddle.net/pXItfm

回答 1 投票 0

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