web-crawler 相关问题

Web爬虫(也称为Web爬虫)是一种以有条不紊,自动化或有序方式浏览万维网的计算机程序。 Web爬虫的其他术语是蚂蚁,自动索引器,僵尸程序,Web蜘蛛,Web机器人,或者 - 尤其是在FOAF社区中 - Web scutters。

Xing 将错误的公司与工作机会关联起来

我们为客户制作了一个网站。该网站上有一个包含空缺职位的页面。如果我在 Xing 上搜索上述职位,我会发现它们在我们公司(制作该网站的人)中列为 em...

回答 1 投票 0

如何在搜索引擎爬虫的页面加载之前执行javasript函数?

我的任务是从 API 中获取页面的标题。这些数据必须可供网络爬虫抓取。这就是我到目前为止所做的。 我的任务是从 API 中获取页面的标题。这些数据必须可供网络爬虫抓取。这就是我到目前为止所做的。 <!DOCTYPE html> <html lang="en"> <head> <meta name="description" content="Test description" /> <title>Test title</title> <script> document.addEventListener('DOMContentLoaded', function () { const endPoint = 'endpoint.com' fetch(apiEndpoint).then(function (response) { return response.json(); }) .then(function (data) { // change title with javascript logic }).catch(function() { // fallback title }) }) </script> </head> <body></body> </html> 您不需要延迟脚本的运行,因为它已经在创建标题标签之后了。 Google 和其他一些搜索引擎确实会渲染页面,并且只要不花太长时间就会看到您的更改。我发现 5 秒差不多是极限了。

回答 1 投票 0

Scrapy:USER_AGENT 和 ROBOTSXTXT_OBEY 设置正确,但我仍然收到错误 403

您好,提前感谢您提供的帮助或指导。这是我的刮刀: 导入scrapy 类 RakutenSpider(scrapy.Spider): 名称=“拉克” allowed_domains = [“rakuten.com”...

回答 2 投票 0

Facebook 市场的 Python scraper 不再工作了

从昨天开始,我遇到了一个问题,我的Facebook市场抓取工具停止获取数据,由于他的功能,我目前正在使用scrapy,我是否做错了什么?输出已共享...

回答 1 投票 0

网站分支地址即使在 1 个月后也没有在 Google 搜索引擎中更新

Adecco 地点的工作时间未在 Google 上更新: 对于 Adecco 比利时的两个地点 - Adecco Hoogstraten 和 ADECCO OOSTMALLE,工作时间在 sitecore 中更新如下:

回答 1 投票 0

无法使用 Selenium (Python) 从雅虎新闻中找到某些元素

我正在尝试从雅虎新闻收集评论,但无法使用 Selenium 找到评论部分的文本元素。 从硒导入网络驱动程序 来自 selenium.webdriver.common.keys

回答 1 投票 0

如何使用Jsoup获取页面对象列表

我已经使用 Jsoup 很长时间了,我设法在几个网站上捕获它,但有一个我根本做不到,我尝试过传递几乎所有可能的 id,但我可以' t 返回

回答 1 投票 0

使用自定义爬虫防止虚假分析统计数据

有没有办法通过使用 PhantomJS 和/或像 Anemone 这样的 ruby 爬虫来防止伪造 Google Analytics 统计数据? 我们的监控工具(基于两者)从我们的客户端抓取网站...

回答 3 投票 0

我的蜘蛛在Scrapy中根本不进入yield scrapy.Request()

我在 Scrapy 中的蜘蛛遇到了问题。根据搜索键,我抓取了搜索结果页面并找到了链接。但是下一个抓取结果页面的yield scrapy.Request() 并没有进入...

回答 1 投票 0

如何防止机器人在 CodeIgniter 中创建会话?

我正在使用 CodeIgniter 并将会话存储在我的数据库中。 在短时间内,机器人/蜘蛛等会创建大量会话。 有办法防止这种情况吗?也许通过 .

回答 1 投票 0

向下滚动时page_source发生变化时如何进行动态网页抓取

我正在尝试从网站抓取数据。 问题是当我向下滚动时源代码正在改变。 例如 第一次,页面源代码就像... 我正在尝试从网站抓取数据。 问题是当我向下滚动时源代码正在改变。 例如 第一次的时候,页面源码就像... <div role="presentation" style="transform: translateY(4088px);"> <div role="row" aria-rowindex="1" aria-selected="false"> <div role="row" aria-rowindex="2" aria-selected="false"> <div role="row" aria-rowindex="3" aria-selected="false"> ... <div role="row" aria-rowindex="8" aria-selected="false"> 当我向下滚动时 <div role="presentation" style="transform: translateY(4088px);"> <div role="row" aria-rowindex="22" aria-selected="false"> <div role="row" aria-rowindex="23" aria-selected="false"> <div role="row" aria-rowindex="24" aria-selected="false"> ... <div role="row" aria-rowindex="29" aria-selected="false"> 我想从此标签获取信息<div role="row" aria-rowindex="?" aria-selected="false"> 现在,我正在使用这段代码。 elem = driver.find_element(By.XPATH, f"//div[@aria-rowindex={num+1}]") 我想到了一个想法,只需一点一点地向下滚动并获取所有信息,然后再次滚动...... 但我想知道有没有更好的办法来解决这个问题? 我们可以通过两种方式解决这个问题 使用 selenium 自动化滚动并提取相应的 div 标签 使用网络调试滚动时识别在后台进行的 XHR 请求。接受请求并以您喜欢的语言实现请求 在 Selenium with Ruby 中,您可以使用 execute_script 方法来运行滚动网页的 JavaScript 代码。以下是如何在 Ruby 中使用 Selenium 向下滚动的示例: require 'selenium-webdriver' # Set up the Selenium WebDriver driver = Selenium::WebDriver.for :chrome # Navigate to the webpage driver.get("https://testwebsite.com") # Scroll down the page driver.execute_script("window.scrollBy(0, 500);") # Wait for a few seconds to see the effect sleep(rand(3..5)) # Close the browser driver.quit 此示例使用 JavaScript 中的 window.scrollBy 方法将页面向下滚动指定的像素数(在本例中为 500 像素)。您可以根据您的要求调整值。 如果你想滚动到页面上的特定元素,可以使用 scrollIntoView 方法。例如: require 'selenium-webdriver' # Set up the Selenium WebDriver driver = Selenium::WebDriver.for :chrome # Navigate to the webpage driver.get("https://testwebsite.com") # Find the element you want to scroll to element = driver.find_element(:id, 'exampleElement') # Scroll to the element driver.execute_script("arguments[0].scrollIntoView(true);", element) # Wait for a few seconds to see the effect sleep(rand(3..5)) # Close the browser driver.quit 在此示例中,将 'exampleElement' 替换为要滚动到的元素的实际 ID 或其他定位器。 scrollIntoView 方法将元素滚动到浏览器窗口的可见区域。

回答 1 投票 0

如何编写一个可以浏览的Python机器人[重复]

可能的重复: 我应该从哪里开始使用 python 制作抓取工具或机器人? 我知道这显然是可能的... 我被要求实现某种访问网站、登录的机器人,

回答 2 投票 0

使用 Scrapy 抓取《纽约时报》

我正在尝试使用 Scrapy 来废弃《纽约时报》的一个学校项目。我尝试使用 NYT 提供的 API,但他们不允许访问最近的文章。 我试图废弃这个网站:htt...

回答 1 投票 0

如何在 C# 中禁用 ChromeDriver Selenium 中的 WEB USB 标志?

错误: [3528:3760:0205/072321.889:错误:device_event_log_impl.cc(192)] [07:23:21.489] ,6})失败:埃莱姆...

回答 1 投票 0

Scrapy 广泛爬行返回错误“filedescriptor out of range in select()”

我正在尝试使用 Scrapy 在 2,000 个域上运行简单的广泛爬网。 我有 4 个列表,每个列表有 500 个域,然后我简单地在这 4 个列表上运行 process.crawl。 我只是在抓取他们的主页...

回答 1 投票 0

Python 爬行 JSON - 取回所有项目

我目前面临的问题是无法从特定网站上抓取我想要的信息。 详细来说,我想拿回观光的所有项目和价格......

回答 2 投票 0

不要在同一托管的多个域上抓取某些页面

我有一个托管帐户,上面停有 2 个域名,网站通过读取正在使用的域名来显示不同的内容。 Google 会抓取此内容并将这 2 个域列为不同的网站...

回答 1 投票 0

运行多个函数时出现 Scrapy 名称错误

我正在尝试运行以下代码,但收到此错误“NameError:名称'scrapedate'未定义” 导入scrapy 从日期时间导入日期时间,时间增量 从 dogscraper.items 导入 Dog...

回答 2 投票 0

服务器上的 SSH 自动化

我面临着通过 ssh 自动化与服务器交互的流程的任务(它启动一个程序,可以通过按键导航)。 在某个时刻,它需要刮掉一些......

回答 1 投票 0

在 WordPress 中,有没有办法排除单个目录被元机器人标签而不是单个页面或帖子索引?

我知道这会将元机器人标签应用于特定页面或帖子: ID == X || $post->ID == Y) { echo ' 我知道这会将元机器人标签应用于特定页面或帖子: <?php if ($post->ID == X || $post->ID == Y) { echo '<meta name="robots" content="noindex,follow">'; } ?> 但我想将相同的元标记应用到包含 70 个文件的特定目录。有什么办法可以在php中完成这个任务吗?我非常感谢您的回答。 元机器人标签仅在网页上使用。这些网页可以是帖子,也可以是 WordPress 中的页面。现在,要隐藏目录以使其不被索引,您需要使用不同的方法。 首先,确保您没有通过 robots.txt 文件禁止该目录。然后,在您的目录中创建一个 htaccess 文件并添加以下行以防止索引。 Header set X-Robots-Tag "noindex, nofollow" 现在看看,如果 Google 已经对其中的文件建立了索引,那么您应该转到网站管理员工具并从 Google 索引中删除这些网址。上述解决方案适用于您使用此解决方案后创建的文件。但是,我希望您在回答中澄清的一件事是目录中的文件类型?如果您可以让我知道您目录中文件的扩展名,那么我可以为您提供自定义解决方案。例如,假设您有 60 个 pdf 文件和 10 个 html 文件,并且您只想隐藏 pdf 文件,那么也有一个解决方案。 否则,如果您的疑问得到解决,那就太好了。 机器人.txt 添加以下行: Disallow: /your/path/to/the/folder/that/should/not/be/indexed/ 我不确定你有什么类型的页面,wordpress还是自定义的 php 方法也是可能的,创建一个带有 array() 的文件,其中包含不应索引的所有页面,并在 if 和 else 语句中对其执行某些操作,例如,如果页面在数组中,则写入元标记如果页面不在数组中,则执行其他操作或不执行任何操作。该文件应包含在您的页面中,如果您使用同一文件在所有页面上加载元标记,则可以将其包含在那里.. <?php $nofollow = array('name1', 'name2', 'name3', 'name4'); $curr_ID = 'get the current page ID'; // write something that is able to put the current page ID here.. if (in_array($curr_ID, $nofollow)) { echo '<meta name="robots" content="noindex,follow">'; // the page ID is in the array } else { echo '<!--// Do nothing or do something else //-->'; // The page ID is not in your array, do what you'd like to do here.. } ?> 这是您一直在寻找的吗? 编辑 500 个索引页面是很多页面和不需要的结果,但您可以将它们从 Google 索引中完全删除这里,如果文档包含个人信息,您也可以请求删除,在 Google 上搜索有关此法律的信息:european法律:你有被遗忘的权利 关于 noindex、nofollow、noarchive: noindex 是:禁止为您的页面建立索引 nofollow 是:禁止关注.. noarchive 是:禁止在搜索引擎中为您的页面现金 下面的 .htaccess 答案也是可能的,但正如 Aman Kapoor 在他的答案中所说,不要同时使用 robots.txt 和 .htaccess 来完成您想做的同一件事。您只能使用 1 种方法。 .htaccess 示例代码1: <IfModule mod_headers.c> # Header set X-Robots-Tag "noindex, nofollow, noarchive" # this can be used to exclude the html extension, change html # to an other extension if you need an other to exclude.. # Remove your-folder in the code below and use the htaccss file in the same folder, # your-folder was added to explaine if there is something you would like to exclude in a folder inside the folder where you would like to exclude something, this is how you can do that... <FilesMatch "^your-folder\.html$"> Header set X-Robots-Tag: "noindex, nofollow, noarchive" </FilesMatch> </IfModule> 下面使用 .htaccess 的示例确实排除了与您添加的扩展名匹配的所有文件,示例 2: <IfModule mod_headers.c> # Add more extensions if needed or remove the extensions you do not want to exclude! (jpe?g is both jpeg and jpg) <FilesMatch "\.(php|htm?l|html|doc|pdf|png|jpe?g|gif)$"> Header set X-Robots-Tag "noindex, noarchive, nosnippet" </FilesMatch> # </IfModule> 我用正确的 .htaccess 代码更新了我的答案,以使用 .htaccess 执行此操作,它正在工作,但您也可以使用服务器配置文件或 robots.txt 方法来停止索引文件夹。 我想说,只需尝试您最喜欢的内容,然后添加您的选择(robots.txt 或 .htaccess 或服务器配置):不要忘记转到 google 网站管理员工具并从索引,之后您需要在网站管理员工具中请求为您的网站建立完整的网站索引.. 最好做什么? 如果可能的话,服务器配置是最好的,大多数网站所有者无法这样做,因为他们无权访问文件... 第二个.htaccess示例,如果有多个扩展名应从搜索索引中排除,如果您无权访问配置文件,这是执行您想要的操作的最佳选择。 robots.txt 在文档根目录中,您始终需要一个 robots.txt 文件,因为这是蜘蛛下载以检查要索引的内容的第一件事,但是如果您使用服务器配置或.htaccess 我相信您能做的最好的事情就是添加第二个 htaccess 示例(编辑扩展名以满足您的需求),转到 webmastertools 并从其索引中删除 500 个文档,然后请求完整的网站爬行/在网站管理员中再次添加网站以进行索引工具

回答 2 投票 0

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