无需爬网就可以快速解析url

2024-09-18 15:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个url列表,我想抓取并遵循所有相同的管道。我怎么开始呢?我真的不知道从哪里开始。在

主要的想法是我的爬行工程通过一个网站和网页。然后生成解析页面并更新数据库。我现在要实现的是解析数据库中所有现有的url的页面,这些url当天没有被爬网。在

我尝试过使用close_spider方法在管道中执行此操作,但无法获取这些url以请求/解析。一旦我生成整个close_spider方法就不再被调用。在

def close_spider(self, spider):
    for item in models.Items.select().where(models.Items.last_scraped_ts < '2016-02-06 10:00:00'):
        print item.url
        yield Request(item.url, callback=spider.parse_product, dont_filter=True)

Tags: 方法数据库url网页列表close管道网站
2条回答

您可以简单地复制并粘贴到start_url中,如果您没有override start_请求,parse将是默认的回调。如果它是一个很长的列表,并且您不需要难看的代码,那么您可以覆盖start_请求,打开文件或执行db调用,并为其中的每个项生成一个url请求和回调以进行解析。这将允许您使用解析函数和管道,并通过scray处理并发。如果你只是有一个没有额外基础设施的列表,并且列表不太长,Sulot的答案就更容易了。在

(重读你的帖子,我不确定我是否回答了你的问题…) 我已经做了一些类似的事情没有刮毛,但模块lxml和请求 网址:

listofurl=['url1','url2']

或者,如果Url有一个模式,则生成它们:

for i in range(0,10):
    url=urlpattern+str(i)

然后我创建了一个循环,解析具有相同模式的每个url: 导入json 从lxml导入html 导入请求

^{pr2}$

相关问题 更多 >