gpt4 book ai didi

regex - 限制scrapy抓取子域

转载 作者:行者123 更新时间:2023-12-03 17:16:25 27 4
gpt4 key购买 nike

我有大约 200 个域需要抓取,但我确定子域中不包含对我有用的信息,因此我想将它们从抓取中排除。

对于域 example.com,我可以使用拒绝规则

(www.)*\w+\.example

但是这种方法会让我为每个域编写 200 条拒绝规则。我的问题是是否可以为每个域的所有子域创建拒绝规则?

来自蜘蛛的片段:
class Spider(CrawlSpider):
name = "courses"
start_urls = [
'https://www.eb-zuerich.ch',
]

allowed_domains = ['eb-zuerich.ch',]


rules = [
Rule(LinkExtractor(allow=(),
deny=(r'.+[sS]itemap', r'.+[uU]eber', r'.+[kK]ontakt', r'.+[iI]mpressum',
r'.+[lL]ogin', r'.+[dD]ownload[s]?', r'.+[dD]isclaimer',
r'.+[nN]ews', r'.+[tT]erm', r'.+[aA]nmeldung.+',
r'.+[Aa][Gg][Bb]', r'/en/*', r'\.pdf$')),
callback='parse_item', follow=True)
]

def parse_item(self, response):

# get soup of the current page
soup = bs(response.body, 'html.parser')
page_soup = bs(response.body, 'html.parser')

# check if it is a course description page
ex = Extractor(response.url, soup, page_soup)
is_course = ex.is_course_page()
if is_course:
ex.save_course_info()

我正在使用 Scrapy 1.4.0 和 Python 3.6.1

最佳答案

My question is whether it is possible to create a deny rule for all subdomains of every domain?



使用简单的方法(忽略顶级域名,如 .co.uk ):
r'^(https?)?//([^./]+\.){2,}[^./]+(/|$)'

关于regex - 限制scrapy抓取子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45145313/

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