首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为漫画书网站抓取产品信息

为漫画书网站抓取产品信息
EN

Stack Overflow用户
提问于 2012-03-17 06:02:25
回答 1查看 515关注 0票数 1

我正在为一位老朋友打造一个基于WordPress平台的漫画书网站。我希望能够有一个脚本,去不同的出版商网站和拉数据。我对编程很陌生,我读过很多不同的选择,只是不知道从哪里开始。首先,从这些网站上提取这些内容是否合法?第二,这里是我想要做的事情的例子。

  1. 页面显示了这个月将要发布的内容。在适当的div中复制该页面的所有链接,这将导致漫画书的细节。将每个超链接保存为$comiclink或其他任何内容。脚本将一次执行每个超链接。
  2. 转到$comiclink的超链接,并根据页面上某些DIV中的内容从页面中抓取内容。示例:
代码语言:javascript
运行
复制
- Copy & save comic title within a defined div into $title
代码语言:javascript
运行
复制
- Copy & save previous and future title hyperlinks within a defined div into $othertitles

注意:$othertitles将循环关闭,并从1启动相同的进程本身。

代码语言:javascript
运行
复制
- Save & download all images within a defined div to $images
代码语言:javascript
运行
复制
- Copy & save all content within a defined div to $content. $content is then broken down    and pulled apart based upon the content that is within it. Example:
代码语言:javascript
运行
复制
    - In stores: $date
    - format: $format
    - UPC: $upc
    - Price: $price
    - The Story: $story

  1. 复制和保存定义的div超链接并保存到$seriesinfo中
  2. 复制和保存已定义的div $relatedinfo,然后将其分解。
代码语言:javascript
运行
复制
- images within $relatedinfo to $relatedimages
- content within $relatedinfo to $relatedcontent
- links within $relatedinfo to $relatedlink. $relatedlink will loop off and restart this process itself from 1.

现在所有的东西都被拆散并保存成自己的小块。我希望WordPress自动创建一个帖子,然后开始将所有这些信息分配到post中。像这样工作。

  1. 检查使用相同$title的现有帖子,如果在标题中不存在$title,则为post和页面名称。如果它存在,中止脚本并转移到下一个脚本。
  2. 从$title中删除数字和alpha字符,如果类别不存在,检查它是否存在;创建它并将其赋值给post。如果存在,则将类别分配给该员额。
  3. 检查现有类别是否有值$format,如果存在,则将其赋值为post,如果不创建,则将类别分配给post。
  4. 上传从$image下载的图片到这篇文章中。
  5. 检查包含单词“盖”的图像,并指定为特征图像。

还有这整件事是如何执行的。我不希望它每周运行一次,每周只运行一次,我希望它能够自动执行,并自动访问相关的网站,抓取内容并创建页面。

我不是要你们帮我把这件该死的事写出来,虽然我绝对不会反对!帮我指出正确的方向就行了。在过去的一天里,我可能已经读到了30+关于拉动内容的文章,而且我可以告诉你很多选择,我只是不知道该从哪里开始,也不知道如何让球朝着正确的方向移动。

更新代码

注:因此,我成功地复制了每个块的内容和路径,而不是从当前位置下载图像。下一步实际上是自动化这个过程,在wordpress中创建一个post来将数据转储到。

代码语言:javascript
运行
复制
function scraping_comic()
{
// create HTML DOM
$html = file_get_html('http://page-on-site-to-scrape.com');

    // get block to scrape
    foreach($html->find('li.browse_result') as $article)
{
    // get title from block
    $item['title'] = trim($article->find('h4', 0)->find('span',0)->plaintext);
    // get title url from block
    $item['title_url'] = trim($article->find('h4', 0)->find('a.grid-hidden',0)->href);
    // get image from block
    $item['image_url'] = trim($article->find('img.main_thumb',0)->src);
    // get details from block
    $item['details'] = trim($article->find('p.browse_result_description_release', 0)->plaintext);
    // get sale info from block
    $item['on_sale'] = trim($article->find('.browse_comics_release_dates', 0)->plaintext);

$ret[] = $item;
}

// clean up memory
$html->clear();
unset($html);

return $ret;
}


// ===== The Code ====

$ret = scraping_comic();

if ( ! empty($ret))
{

// place main url for instance when hyperlinks and image srcs don't use the full path.
$scrape = 'http://site-to-scrape.com';

foreach($ret as $v)
{
    echo '<p><a href="'.$scrape.$v['title_url'].'">'.$v['title'].'</a></p>';
    echo '<p><img src="'.$v['image_url'].'"></p>';
    echo '<p>'.$v['details'].'</p>';
    echo '<p> '.$v['on_sale'].'</p>';
}

}
    else { echo 'Could not scrape page!'; }
?>
EN

回答 1

Stack Overflow用户

发布于 2012-03-17 06:25:45

通常情况下,no这是不合法的。现在分享数据的公司将实现一个API,你可以在你的应用程序中调用和使用(这取决于他们的使用条款和版权政策)。他们不喜欢你提出自动请求,使他们的服务器陷入瘫痪,并扼杀他们的带宽。

尽管如此,通常情况下,产品信息可以从其他来源获得,比如有API的亚马逊。

您正在描述的这个项目有很多工作要做,本质上是定制WordPress CMS,对于没有任何编程经验的人来说,这并不是什么小事。你可能想考虑在oDesk或许多其他自由职业者中的一个招聘自由职业者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9747690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档