我的爬虫只能爬少量信息

来源:7-7 职位数据入库-1

Xiaoyu_Wu

2019-05-26

老师,您好!

我做爬取知乎和拉勾网信息的练习时,有一个问题:

1.问题出现在爬取知乎网的时候:
用selenium模拟登录知乎后,我得到知乎首页的response,开始爬取,然后,我只能爬到6条问题的url,如下代码截图,但知乎首页的问题的url一定不止是6条。
zhihu

2.问题出现在爬取拉勾网的时候:
用crawl爬取拉勾时,我配置的rule如下:

 rules = (
        Rule(LinkExtractor(allow=("zhaopin/Python/.*",)),callback='parse_job'),
    )
    
    def parse_job(self, response):
        myItemLoader = ItemLoader(item=LagouItem(), response=response)
        myItemLoader.add_css("title", ".p_top h3::text")
        myItemLoader.add_css("address", ".p_top span.add em::text")
        myItemLoader.add_css("salary", ".p_bot span::text")
        myItemLoader.add_css("company", ".company_name a::text")
        myItem = myItemLoader.load_item()
        # 第一次得到的item是一个个列表,titlelist,addresslist,salarylist和companylist
        list_title = myItem["title"]
        list_address = myItem["address"]
        list_salary = myItem["salary"]
        list_company = myItem["company"]
        # 再创建第二个item2,每次循环都yield出去,让pipeline执行保存,这样就可以做到一一对应地保存职位信息
        num = len(list_title)
        myItem2 = LagouItem()
        for i in range(num):
            myItem2["title"] = list_title[i]
            myItem2["address"] = list_address[i]
            myItem2["salary"] = list_salary[i]
            myItem2["company"] = list_company[i]
            yield myItem2

我在parse_job里面用Itemloader对item进行爬取和加载,但只能得到15条信息。
不管是存到mysql, csv或者json文件中,都只有15条job信息。

老师,您比较有经验,知道这是哪里的问题吗?
谢谢!

写回答

1回答

bobby

2019-05-28

如果数据不够 你就需要看看pycharm的console中 是不是有些url返回的状态码不是200?而是302? 你截图我看看呢

0
4
Xiaoyu_Wu
回复
bobby
QQ#863985967 老师,您加过我的
2019-06-01
共4条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5796 学习 · 6290 问题

查看课程