无法使用scrapy刮取多个页面

2024-10-01 13:37:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个从class-central.com搜集数据的项目。如果你打开这个网站,点击任何一个科目(例如计算机科学),你会得到一个课程列表。在页面的底部,有一个“下一步”按钮,显示更多的课程,这将一直持续到所有课程都显示出来。我想把所有的课程都擦掉

    import scrapy
    from ..items import ClasscentralItem
    class ClassCentral(scrapy.Spider):
    name = 'spidy'
    start_urls = [
      'https://www.classcentral.com/subject/cs'
  ]
    def parse(self, response):
    items = ClasscentralItem()
    all_tr = response.css('#course-listing-tbody tr[itemscope]')
    courses = response.css('.number-of-courses .text--bold::text')
    for x in all_tr:
        sub = response.css('.medium-up-head-1::text').extract()
        course_name = x.css('.course-name .text--bold::text').get()
        course_devloper = x.css('.uni-name::text').extract()
        via = x.css('.text--italic::text').get()
        duration = x.css('.icon-clock-charcoal::text').extract()
        start_date = x.css('.medium-only-hidden::text').get()
        rating = x.css('td:nth-child(4)').attrib['data-timestamp']
        number_review = x.css('td#span#a::text').get()
        items['subjectname'] = sub
        items['course_name'] = course_name
        items['course_devloper'] = course_devloper
        items['via'] = via
        items['duration'] = duration
        items['start_date'] = start_date
        items['rating'] = rating
        items['number_review'] = number_review
        yield items

我正在努力清除单击“下一步”按钮后显示的课程。 另外,我无法勉强获得每门课程的“复习次数”。 这是我的密码

请帮忙

(附言:我是一个初学者,所以请尽量让你的答案简单)


Tags: textnamenumbergetresponseextractitemsstart