使用Scrapy进行网页抓取:在论坛

时间:2015-11-27 19:40:58

标签: python search web-crawler scrapy forum

几个月前,我开始寻找一些简单的方法来编写一个脚本,当一个关键字在论坛部分的帖子中发布时,该脚本可以提醒我。

所以,我的研究引导我进行python模块scrapy,我很乐意尝试,因为我已经知道了一些python。

我试过,但我得到的结果不够令人满意。

让我们解释一下我想要的东西:

我有兴趣从论坛分类部分检索帖子,检查是否有新消息已发布,如果标题中出现带有特定单词的新主题,则向我发送消息。

这是我的代码,ntspider.py:

from scrapy.http import Request

class MySpider(BaseSpider):
    name = "LP195xSearch"
    allowed_domains = ["www.mylespaul.com"]
    start_urls = ["http://www.mylespaul.com/forums/member-classifieds/"]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        titles = hxs.select('//a[contains(@id,"thread_title")]/text()').extract()
        t =[]

        for title in titles:
            t.append(title)
            item = LP195xSearchItem()
            item["title"] = title
            yield item

        for i in xrange(len(t)):
            print repr(str(t[i])).center(20)

这只是检索和打印线程标题,现在我想告诉我是否找到了onw keywork。

非常欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

你真的不需要scrapy,但是对于通知,我认为你需要创建如下内容:

  1. 设置一个cron作业,定期执行你的蜘蛛(每天,每小时,你想要的)。
  2. 设置数据库放置线程项目的位置。
  3. 获取某个项目时,请检查您的数据库中是否已有该项目以及该标题是否包含您的keyword并发送通知(您可以查看替代here或您选择的电子邮件)。
  4. 我说你在这里并不需要scrapy,因为你只需要在页面上阅读纯文本,这可以在一个简单的脚本中使用requests库或你选择的一个。