我是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中,我想抓取存储在.csv文件中的1000多个网站。我想导入csv文件并遍历每个URL。我怎样才能做到这一点?如果他们有cs部门,那些链接应该写在csv文件中。如何修改我的XPath以找到每个网站中的cse部门(尝试在该页面上的链接中找到cse或计算机或单词列表)以及我在哪里应用条件(如果链接有cse部门将该链接写入文件否则没有。)最后我如何指定scrapy的深度?谢谢还可以在文件中定义单词搜索技术并在scrapy中使用它吗?
答案 0 :(得分:0)
'start_urls'只是一个列表。覆盖init,读取csv,然后汇总列表。