gpt4 book ai didi

python - Scrapy SgmlLinkExtractor 问题

转载 作者:太空狗 更新时间:2023-10-29 20:13:15 24 4
gpt4 key购买 nike

我正在尝试让 SgmlLinkExtractor 工作。

这是签名:

SgmlLinkExtractor(allow=(), deny=(), allow_domains=(), deny_domains=(), restrict_xpaths(), tags=('a', 'area'), attrs=('href'), canonicalize=True, unique=True, process_value=None)

我只是在使用 allow=()

所以,我输入

rules = (Rule(SgmlLinkExtractor(allow=("/aadler/", )), callback='parse'),)

所以,初始 url 是 'http://www.whitecase.com/jacevedo/' 我正在输入 allow=('/aadler',)并期望'/aadler/' 也会被扫描。但是,蜘蛛会扫描初始 url,然后关闭:

[wcase] INFO: Domain opened
[wcase] DEBUG: Crawled </jacevedo/> (referer: <None>)
[wcase] INFO: Passed NuItem(school=[u'JD, ', u'Columbia Law School, Harlan Fiske Stone Scholar, Parker School Recognition of Achievement in International and Foreign Law, ', u'2005'])
[wcase] INFO: Closing domain (finished)

我在这里做错了什么?

这里有成功使用过Scrapy的人可以帮我完成这个蜘蛛吗?

谢谢你的帮助。

我在下面包含了蜘蛛代码:

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from Nu.items import NuItem
from urls import u

class NuSpider(CrawlSpider):
domain_name = "wcase"
start_urls = ['xxxxxx/jacevedo/']

rules = (Rule(SgmlLinkExtractor(allow=("/aadler/", )), callback='parse'),)

def parse(self, response):
hxs = HtmlXPathSelector(response)

item = NuItem()
item['school'] = hxs.select('//td[@class="mainColumnTDa"]').re('(?<=(JD,\s))(.*?)(\d+)')
return item

SPIDER = NuSpider()

注意:所以不会让我发布超过 1 个网址,因此请根据需要替换初始网址。对此感到抱歉。

最佳答案

您正在覆盖它出现的“解析”方法。 “parse”,是 CrawlSpider 中用于跟踪链接的私有(private)方法。

关于python - Scrapy SgmlLinkExtractor 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1809817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com