标签: web-crawler

如何在C#中修复我的爬虫?

Regex hrefs = new Regex("<a href.*?>");
Regex http = new Regex("http:.*?>");  
StringBuilder sb = new StringBuilder();
WebClient client = new WebClient();
string source = client.DownloadString("http://google.com");
foreach (Match m in hrefs.Matches(source)){
sb.Append(http.Match(m.ToString()));
Console.WriteLine(http.Match(m.ToString()));
}
Run Code Online (Sandbox Code Playgroud)

代码工作正常,但只有一次问题看输出.

http://images.google.se/imghp?hl=sv&tab=wi" onclick=gbar.qs(this) class=gb1>
http://video.google.se/?hl=sv&tab=wv" onclick=gbar.qs(this) class=gb1>
http://maps.google.se/maps?hl=sv&tab=wl" onclick=gbar.qs(this) class=gb1>
http://news.google.se/nwshp?hl=sv&tab=wn" onclick=gbar.qs(this) class=gb1>
http://translate.google.se/?hl=sv&tab=wT" onclick=gbar.qs(this) class=gb1>
http://mail.google.com/mail/?hl=sv&tab=wm" class=gb1>
http://www.google.se/intl/sv/options/" onclick="this.blur();gbar.tg(event);return !1" aria-haspopup=true class=gb3>
http://blogsearch.google.se/?hl=sv&tab=wb" onclick=gbar.qs(this) class=gb2>
http://www.youtube.com/?hl=sv&tab=w1&gl=SE" onclick=gbar.qs(this) class=gb2>
http://www.google.com/calendar/render?hl=sv&tab=wc" class=gb2>
http://picasaweb.google.se/home?hl=sv&tab=wq" onclick=gbar.qs(this) class=gb2>
http://docs.google.com/?hl=sv&tab=wo" class=gb2>
http://www.google.se/reader/view/?hl=sv&tab=wy" class=gb2>
http://sites.google.com/?hl=sv&tab=w3" class=gb2>
http://groups.google.se/grphp?hl=sv&tab=wg" onclick=gbar.qs(this) class=gb2>
http://www.google.se/ig%3Fhl%3Dsv%26source%3Diglk&usg=AFQjCNEsLWK4azJkUc3KrW46JTUSjK4vhA" class=gb4>
http://www.google.se/" class=gb4> …
Run Code Online (Sandbox Code Playgroud)

.net c# web-crawler

0
推荐指数
1
解决办法
1148
查看次数

Lucene的用途是什么?

我听过很多时间Lucene的名字,而我试图获取它大部分时间显示的网络爬虫的细节.是什么时候使用Lucene?

java lucene web-crawler

0
推荐指数
1
解决办法
176
查看次数

网络爬虫如何工作?

使用一些基本的网站抓取,我正在尝试准备一个数据库进行价格比较,这将减轻用户的搜索体验.现在,我有几个问题:

我应该使用file_get_contents()curl获取所需网页的内容吗?

$link = "http://xyz.com";
$res55 = curl_init($link);
curl_setopt ($res55, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($res55, CURLOPT_FOLLOWLOCATION, true); 
$result = curl_exec($res55);
Run Code Online (Sandbox Code Playgroud)

此外,每次我抓取一个网页时,我都会获取大量链接以便访问下一个网页.这可能需要很长时间(如果您抓取像Ebay这样的大型网站,则需要几天时间).在这种情况下,我的PHP代码将超时.应该采用哪种自动方式来做到这一点?有没有办法阻止PHP通过在服务器上进行更改来超时,还是有其他解决方案?

php timeout web-crawler

0
推荐指数
1
解决办法
1262
查看次数

0
推荐指数
1
解决办法
186
查看次数

用 Python 下载文件(带请求?)

我想要做的是构建一个简单的爬虫来帮助我从 Ultimate-Guitar 下载吉他谱。我可以为它提供一个乐队的 URL,它会抓取所有列为“Guitar Pro”标签的标签的链接。

一个典型的链接如下所示:

https://tabs.ultimate-guitar.com/a/agalloch/you_were_but_a_ghost_in_my_arms_guitar_pro.htm

我可以使用此链接做的是使用以下代码找到 tab_id:

for tabid in tab.findAll("input", {"type" : "hidden", "name" : "id", "id" : "tab_id"}):
        tabID = tabid.get("value")
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的是使用它来构建指向实际下载的链接。我遇到问题的地方在这里。我可以构建的最佳链接如下所示:

https://tabs.ultimate-guitar.com/tabs/download?id=904610

请注意,该 URL 末尾的 id 是我之前提到的 tab_id。

如果在浏览器中输入此链接将立即导致下载。我遇到问题的地方是我找不到任何方法来生成依赖于实际文件名的链接。此文件名应该类似于 [此处的歌曲名称].gp5。其他可接受的文件类型可能是 .gpx、.gp4 和 .gp3。

我想要做的是获取实际文件名,以便我可以正确保存文件(如果下载被命名为垃圾文件,例如 ID,这对我没有帮助,因为这对我来说是一个无用的文件名,我显然需要适当的扩展)。有没有办法获取上面的链接并正确初始化下载,或者我可能不走运?我确定有一种方法可以满足我的需求,只是我对这类事情没有足够的经验。我对请求和诸如此类的东西一无所知,所以也许可以提供此 URL 的内容并获得下载作为回报?

注意:如果获取实际文件名和扩展名太困难,我确实有解决方法的想法,但我显然至少需要适当的扩展名。

python beautifulsoup web-crawler python-requests

0
推荐指数
1
解决办法
5255
查看次数

禁止某些图像文件夹

我正在制作我的 robots.txt 文件。但我对如何禁用 Googlebot-Image 有点不安全。我想允许谷歌机器人抓取我的网站,除了我在下面做的禁止。这是我做的:

User-agent: Googlebot
Disallow:

Disallow: /courses/
Disallow: /portfolio/portfolio-template.php/

User-agent: Googlebot-Image
Disallow: 
/images/graphics/erhvervserfaring/
/images/graphics/uddannelse/

sitemap: http://www.example.com/sitemap.xml
Run Code Online (Sandbox Code Playgroud)

应该将 User-agent:GooglebotUser-agent: Googlebot-Image写在一起,所以是这个?:

用户代理:Googlebot-Image 用户代理:Googlebot 禁止:

Disallow: /courses/
          /portfolio/portfolio-template.php/
          /images/graphics/erhvervserfaring/
          /images/graphics/uddannelse/
Run Code Online (Sandbox Code Playgroud)

seo robots.txt web-crawler

0
推荐指数
1
解决办法
858
查看次数

当从文件打开链接时,美丽的汤无法从页面中提取HTML

我在文件中有一些网页链接article_links.txt,我想逐个打开,提取文本,然后打印出来.我的代码是:

import requests
from inscriptis import get_text
from bs4 import BeautifulSoup

links = open(r'C:\Users\h473\Documents\Crawling\article_links.txt', "r")

for a in links:
    print(a)
    page = requests.get(a)
    soup = BeautifulSoup(page.text, 'lxml')
    html = soup.find(class_='article-wrap')
    if html==None:
        html = soup.find(class_='mag-article-wrap')

    text = get_text(html.text)

    print(text)
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误说, ---> text = get_text(html.text)

AttributeError: 'NoneType' object has no attribute 'text'

所以,当我打印出soup变量以查看ts内容是什么时.这是我为每个链接找到的内容:

http://www3.asiainsurancereview.com//Mock-News-Article/id/42945/Type/eDaily/New-Zealand-Govt-starts-public-consultation-phase-of-review-of-insurance-law

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Bad Request</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/></head>
<body><h2>Bad Request - Invalid URL</h2>
<hr/><p>HTTP Error 400. The request …
Run Code Online (Sandbox Code Playgroud)

html python beautifulsoup web-crawler web-scraping

0
推荐指数
1
解决办法
199
查看次数

使用 cURL 和 PHP 登录 Facebook

我正在尝试使用 curl 访问 Facebook 登录页面。我的意图是登录到 facebook,然后做一些转义。由于最新的限制,我没有使用 facebook API……我需要抓取帖子的评论,而仅使用 API 是不可能的。

这是我的一些代码:

curl_setopt($ch, CURLOPT_URL,"https://web.facebook.com");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Run Code Online (Sandbox Code Playgroud)

我希望它重定向到登录页面,然后当用户填写登录表单时,我将获取凭据并使用它们重定向到主页并开始抓取。

无论如何,这就是我得到的:

我实际上是在 chrome 上运行这个...

php curl facebook screen-scraping web-crawler

0
推荐指数
1
解决办法
2137
查看次数

在php中创建文件扫描器时如何修复超时

大家好,我正在尝试使用文件扫描仪并将数据添加到要保存在数据库中的文件,几乎扫描仪扫描了 15,000 个文件,但时间最多只有一半的目录。我的代码看起来像这样

<?php 
$dir = scandir("manual/");
//saving results
$db = mysqli_connect('localhost','test','test123','tests');
foreach ($dir as $file) {
    if ($file != ".." AND $file != "." AND !empty($file)) {
        $coll = explode(".", $file);
        array_pop($coll);
        $fname = $coll['0'];
        $lname = $coll['1'];
        $query = "INSERT INTO `data`(`fname`, `lname`, `directory`) VALUES ('$fname' ,'$lname','$file')";
        //inserting the query into a  sql file
        $db->query($query);
        //data
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

php mysqli web-crawler

0
推荐指数
1
解决办法
102
查看次数

我想使用Scrapy(了解cb_kwargs)按项目总结多个页面的信息

目标:我想检索特定电子商务网站上发布的订单绩效数据。由于每个订单绩效的这些数据分布在多个页面上,因此我们希望提取每个页面的信息,并最终将它们汇总为单个项目或记录。

\n

我浏览了官方文档和其他类似的质量检查并找到了一些。\n从这些信息中,我了解到可以通过使用 cb_kwargs 来实现这一目标。\n但是,我无法理解什么下面的代码是错误的。

\n
    \n
  • [python - 使用 scrapy 解释回调和 cb_kwargs - 堆栈\n溢出]\n(使用 scrapy 解释回调和 cb_kwargs

    \n
  • \n
  • [python - Scrapy 中每个项目有多个页面。\n(/sf/ask/1554131351/?noredirect=1&lq=1)

    \n
  • \n
\n

程序运行,但 csv 不输出任何内容,如下图所示。\n在此处输入图像描述

\n

订单结果页面每页包含 30 个商品的信息。\n我想首先检索每个商品的所有注册日期(仅在第一页上列出),然后从那里移至每个产品页面以检索详细信息,然后然后一次将这些信息存储一项。

\n

我是一个初学者,3个月前开始用Python编写代码。\n所以我可能对类等的基本理解存在一些问题。\n如果你能在我们讨论时向我指出这一点,我将不胜感激。\n官方文档scrapy对初学者来说太不友好了,我很难用它。

\n
 def parse_firstpage_item(self, response): \n            request = scrapy.Request(\n                url=response.url,\n                callback=self.parse_productpage_item,\n                cb_kwargs=dict(product_URL=\'//*[@id="buyeritemtable"]/div/ul/li[2]/p[1]/a\'))\n    \n            loader = ItemLoader(item = BuymaResearchtoolItem(), response = response)\n    \n            loader.add_xpath("Conversion_date", \'//*[@id="buyeritemtable"]/div/ul/li[2]/p[3]/text()\')\n    \n            yield loader.load_item()\n    \n    \n        def parse_productpage_item(self, response, product_URL): \n    \n            loader = ItemLoader(item = BuymaResearchtoolItem(), response …
Run Code Online (Sandbox Code Playgroud)

python web-crawler scrapy web-scraping

0
推荐指数
1
解决办法
178
查看次数