gpt4 book ai didi

python - scrapy 正则表达式也返回不匹配的 url

转载 作者:行者123 更新时间:2023-11-28 17:33:20 25 4
gpt4 key购买 nike

我的爬虫代码是:

class TryItem(Item):
url = Field()

class BbcSpiderSpider(CrawlSpider):
name = "bbc_spider"
allowed_domains = ["www.bbc.com"]
start_urls = ['http://www.bbc.com/sport/0/tennis']

rules = (Rule(LinkExtractor(allow=['.*sport\/0\/tennis\/\d{8}']), callback='parse_item', follow=True),)

def parse_item(self, response):
Item = TryItem()
Item['url'] = response.url
yield Item

通过这个蜘蛛,我试图收集所有关于网球的文章的 url。我使用 csv 代码:

scrapy crawl bbc_spier -o bbc.csv -t csv

我正在寻找的输出是:

http://www.bbc.com/sport/0/tennis/34322294
http://www.bbc.com/sport/0/tennis/14322295
...
http://www.bbc.com/sport/0/tennis/12345678

但是,蜘蛛也会返回不匹配的 url,例如:

http://www.bbc.com/sport/0/tennis/29604652?print=true
http://www.bbc.com/sport/0/tennis/34252190?comments_page=11&filter=none&initial_page_size=10&sortBy=Created&sortOrder=Descending

有什么建议吗?谢谢

最佳答案

不要让蜘蛛通过强制 url 在 8 位数字后结束来跟踪不需要的 url:

.*sport\/0\/tennis\/\d{8}$
# IMPORTANT ^

关于python - scrapy 正则表达式也返回不匹配的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32752557/

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