吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1104|回复: 6
收起左侧

[求助] scrapy里rules正则写法求助

[复制链接]
coolllyy 发表于 2020-6-13 00:26
本帖最后由 coolllyy 于 2020-6-13 00:28 编辑

想爬取一个网站所有文章页,用了scrapy CrawlSpider爬取
之前网站文章页格式是 www.某某.com/a/611037.html
于是乎我就写 Rule(LinkExtractor(allow=r'/a/\d+\.html'), callback='parse_item', follow=True),
现在网站内容页改链接格式了
换成了www.某某.com/ticai/xuxiegaixie/696037.html
ticai  和 xuxiegaixie 是会变的 不同栏目不同
然后我现在只想爬新格式文章页,就是不想爬以前带了/a的文章页了。rule写了好几次都失败了,
只能来这求助了。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

puppy1980 发表于 2020-6-13 06:20
那两个地方用至少一个字母正则得了呗
还有既然是栏目 也是有限的基本 搞个列表遍历?
1170 发表于 2020-6-13 08:29
本帖最后由 1170 于 2020-6-13 09:23 编辑

Rule(LinkExtractor(deny=r'/a/\d+\.html'),这样就不会爬取带了/a的文章页了
涛之雨 发表于 2020-6-13 08:41
楼上应该是没看懂吧。
楼主是之前爬过一遍了,
更新后有一部分是之前爬过的,是之前/a/下的网页。
他想过滤掉这部分。。。。
虽然我不会这个应该做不到吧
可以先用字典获取一下之前爬过的页面的数字,然后做个判断?
 楼主| coolllyy 发表于 2020-6-13 10:25
之前/a/数字.html 所有网页我已经爬取过了。
现在我把 start_urls换成了www.某某.com/ticai/xuxiegaixie/696037.html
数据存在另外一个数据表里。
然后我编了一个不怎么完美的正则,Rule(LinkExtractor(allow=r'([\s\S.]*?)/([\s\S.]*?)/\d+\.html'), callback='parse_item', follow=True),
如果start_urls = ['www.某某.com/ticai/xuxiegaixie/696037.html'],整站爬取时候只会爬新格式内容页,不会爬取/a/数字的内容页。
但是出现个问题,如果start_urls = ['www.某某.com/a/611037.html'],竟然这个正则不能束缚起始页,一直抓/a/数字的内容页入库。。
所以想问问 怎么编写个完善的正则,要求就是 /一串字母/一串字母/数字.html  并且/a/数字.html就不能通过。
 楼主| coolllyy 发表于 2020-6-13 11:00
1170 发表于 2020-6-13 08:29
Rule(LinkExtractor(deny=r'/a/\d+\.html'),这样就不会爬取带了/a的文章页了

    rules = (
        Rule(LinkExtractor(allow=r'([\s\S.]*?)/([\s\S.]*?)/\d+\.html'), callback='parse_item', follow=True),
        Rule(LinkExtractor(deny=r'a/\d+\.html'),),
    )

这样设置了,a/数字.html  还是爬取并且执行了callback='parse_item' 。困扰了
1170 发表于 2020-6-13 12:58
本帖最后由 1170 于 2020-6-13 14:34 编辑
coolllyy 发表于 2020-6-13 11:00
rules = (
        Rule(LinkExtractor(allow=r'([\s\S.]*?)/([\s\S.]*?)/\d+\.html'), callback='p ...

应该这样  rules = (
        Rule(LinkExtractor(allow=r'([\s\S.]*?)/([\s\S.]*?)/\d+\.html', deny=r'a/\d+\.html'), callback='parse_item', follow=True),
    )
写在一个入了里面
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 15:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表