0

我是scrapy框架的新手。他们有这个很棒的文档,我在其中了解了各种东西。我正在尝试将各种教育网站卷曲到深度 3 级,在每个网站中找到 cse 部门(尝试在该页面上抓取的链接中查找 cse 或计算机或单词列表)。如果他们的网站中有 cse 部门,则这些链接或 URL 将存储在 .csv 文件中。到目前为止,这是我的代码:

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector

from dirbot.items import Website


class DmozSpider(BaseSpider):
    name = "dmoz"
    allowed_domains = ["dmoz.org"]
    start_urls = [
        "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
        "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/",
    ]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        sites = hxs.select('//ul/li')
        items = []

        for site in sites:
            item = Website()
            item['name'] = site.select('a/text()').extract()
            item['url'] = site.select('a/@href').extract()
            item['description'] = site.select('text()').extract()
            items.append(item)

        return items

问题是:在 allowed_domains 中,我想抓取 1000 多个存储在 .csv 文件中的网站。我想导入 csv 文件并遍历每个 URL。我怎样才能做到这一点?如果他们有 cs 部门,那么这些链接应该写在 csv 文件中。如何修改我的 XPath 以在每个网站中查找 cse 部门(尝试在该页面上抓取的链接中查找 cse 或计算机或单词列表)以及我在哪里应用条件(如果链接有 cse 部门将该链接写入文件否则不是。)最后我如何在scrapy中指定深度?谢谢 另外是否可以在文件中定义单词搜索技术并在scrapy中使用它?

4

1 回答 1

0

'start_urls' 只是一个列表。覆盖 init,读取 csv,并组装您的列表。

于 2012-11-08T07:07:03.957 回答