Scrapy:LinkExtractor 不工作
Scrapy: LinkExtractor not working
我正在尝试抓取 Erowid 并收集有关体验的数据。我试图从有关药物的一般信息到实际体验本身。
但是 LinkExtractor 似乎无法正常工作。
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.selector import HtmlXPathSelector
from Erowid.items import ErowidItem
class ExperiencesSpider(CrawlSpider):
name = "test"
allowed_domains = ["www.erowid.org"]
start_urls = ['https://www.erowid.org/experiences/subs/exp_aPVP.shtml']
rules = [
Rule(LinkExtractor(allow =('/experiences/exp.php?ID=[0-9]+')), callback = 'parse_item', follow = True)
]
def parse_item(self, response):
[other code]
从 https://www.erowid.org/experiences/subs/exp_aPVP.shtml 开始,我正在努力获得 href 为
的体验
/experiences/exp.php?ID= (some digits)
我找不到 ID 后的正确代码,我已经尝试了各种不同的正则表达式,包括
\d+ and [0-9]+
是正则表达式不正确导致的错误吗?如果是,那么正确的正则表达式是什么?如果不是,那么为什么会出现此错误,我该如何解决?
这是适合我的表达方式:
/experiences/exp\.php\?ID=\d+$
下面是 rules
的样子:
rules = [
Rule(LinkExtractor(allow=r'/experiences/exp\.php\?ID=\d+$'),
callback='parse_item', follow=True)
]
我正在尝试抓取 Erowid 并收集有关体验的数据。我试图从有关药物的一般信息到实际体验本身。
但是 LinkExtractor 似乎无法正常工作。
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.selector import HtmlXPathSelector
from Erowid.items import ErowidItem
class ExperiencesSpider(CrawlSpider):
name = "test"
allowed_domains = ["www.erowid.org"]
start_urls = ['https://www.erowid.org/experiences/subs/exp_aPVP.shtml']
rules = [
Rule(LinkExtractor(allow =('/experiences/exp.php?ID=[0-9]+')), callback = 'parse_item', follow = True)
]
def parse_item(self, response):
[other code]
从 https://www.erowid.org/experiences/subs/exp_aPVP.shtml 开始,我正在努力获得 href 为
的体验/experiences/exp.php?ID= (some digits)
我找不到 ID 后的正确代码,我已经尝试了各种不同的正则表达式,包括
\d+ and [0-9]+
是正则表达式不正确导致的错误吗?如果是,那么正确的正则表达式是什么?如果不是,那么为什么会出现此错误,我该如何解决?
这是适合我的表达方式:
/experiences/exp\.php\?ID=\d+$
下面是 rules
的样子:
rules = [
Rule(LinkExtractor(allow=r'/experiences/exp\.php\?ID=\d+$'),
callback='parse_item', follow=True)
]