热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《从零开始学Python网络爬虫》CH8

Case1爬取简书网热评文章-案例描述利用第三方库及多进程爬虫,来爬取简书网“首页投稿”的热评文章数据,并存储在MongoDB数据库中#-*-coding:utf-

Case1 爬取简书网热评文章

这里写图片描述
- 案例描述
利用第三方库及多进程爬虫,来爬取简书网“首页投稿”的热评文章数据,并存储在MongoDB数据库中

# -*- coding: utf-8 -*-

import requests
from lxml import etree
import pymongo
from multiprocessing import Pool

client = pymongo.MongoClient('localhost', 27017)
mydb = client['mydb']
jianshu_shouye = mydb['jianshu_shouye']

def get_jianshu_info(url):
    html = requests.get(url)
    selector = etree.HTML(html.text)
    infos = selector.xpath('//ul[@class="note-list"]/li')

    for info in infos:
        try:
            author = info.xpath('div/div[1]/div/a/text()')[0]
            time = info.xpath('div/div[1]/div/span/@date-shared-at ')[0]
            title = info.xpath('div/a/text()')[0]
            cOntent= info.xpath('div/p/text()')[0].strip()
            view = info.xpath('div/div[2]/a[1]/text()')[1].strip()
            comment = info.xpath('div/div[2]/a[2]/text()')[0].strip()
            like = info.xpath('div/div[2]/span[1]/text()')[0].strip()
            rewards = info.xpath('div/div[2]/span[2]/text()')
            if len(rewards) == 0:
                reward = '无'
            else:
                reward = reward[0].strip()
            data = {
                    'author':author,
                    'time':time,
                    'title':title,
                    'content':content,
                    'view':view,
                    'comment':comment,
                    'like':like,
                    'reward':reward,
                    }
            jianshu_shouye.insert_one(data)
        except IndexError:
            pass

if __name__ == '__main__':
    urls = ['https://www.jianshu.com/c/bDHhpK?order_by=commented_at&page={}'.format(str(i)) for i in range(1, 10001)]
    pool = Pool(processes = 4)
    pool.map(get_jianshu_info, urls)
  • 代码分析
    1、1-4行导入库,Pymongo用于对MongoDB数据库的操作,multiprocessing库由于多进程爬虫;
    2、6-8行用于创建MongoDB数据库和集合;
    3、10-40行定义了爬取简书网信息的参数,由于有些文章有打赏,有的没有打赏,因此需要判断;
    4、42-46行,构造10000个url,进行多进程爬取。

Case2 爬取转转网二手市场商品信息

  • 案例描述
这里写代码片
  • 代码分析

推荐阅读
  • 爬虫实践-爬取简书网用户动态信息
    jianshuwanguser.py:importrequestsfromlxmlimportetreeimportpymongoclientpymongo.MongoClie ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • 利用ViewComponents在Asp.Net Core中构建高效分页组件
    通过运用 ViewComponents 技术,在 Asp.Net Core 中实现了高效的分页组件开发。本文详细介绍了如何通过创建 `PaginationViewComponent` 类并利用 `HelloWorld.DataContext` 上下文,实现对分页参数的定义与管理,从而提升 Web 应用程序的性能和用户体验。 ... [详细]
  • 【Python爬虫实操】 不创作小说,专精网站内容迁移,超高效!(含源代码)
    本文详细介绍了如何利用Python爬虫技术实现高效网站内容迁移,涵盖前端、后端及Android相关知识点。通过具体实例和源代码,展示了如何精准抓取并迁移网站内容,适合对Python爬虫实战感兴趣的开发者参考。 ... [详细]
  • 蚂蜂窝爬虫
    Nodejs爬取蚂蜂窝文章的爬虫以及搭建第三方服务器如题,本项目用Nodejs实现了对蚂蜂窝网站的爬取,并将数据储存到MongoDB中,再 ... [详细]
  • 《Python3 网络爬虫开发实战》:高效实用的 MongoDB 文档存储
    NoSQL,全称NotOnlySQL,意为不仅仅是SQL,泛指非关系型数据库。NoSQL是基于键值对的,而且不需要经过SQL ... [详细]
  • 学到了MongoDBMongo是一个基于分布式文件存储的数据库,由C++编写,旨在为Web应用提供可拓展的高性能数据存储解决方案.它介于关系数据库和非关系数据库之间,在非关系数据 ... [详细]
  • 本文将详细介绍在Android应用中添加自定义返回按钮的方法,帮助开发者更好地理解和实现这一功能。通过具体的代码示例和步骤说明,本文旨在为初学者提供清晰的指导,确保他们在开发过程中能够顺利集成返回按钮,提升用户体验。 ... [详细]
  • 本文介绍了如何通过掌握 IScroll 技巧来实现流畅的上拉加载和下拉刷新功能。首先,需要按正确的顺序引入相关文件:1. Zepto;2. iScroll.js;3. scroll-probe.js。此外,还提供了完整的代码示例,可在 GitHub 仓库中查看。通过这些步骤,开发者可以轻松实现高效、流畅的滚动效果,提升用户体验。 ... [详细]
  • 如何将Java 8中的嵌套列表 List<List<Integer>> 转换为单一列表 List<Integer> 的操作方法
    本文详细探讨了如何在Java 8中将嵌套列表 `List` 展平为单一列表 `List` 的方法。通过使用流(Stream)API 和 `flatMap` 操作,可以高效地实现这一转换过程。该技术在处理多层数据结构时非常实用,适用于多种应用场景,如数据聚合和简化复杂列表操作。文章提供了详细的代码示例和解释,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 本文介绍了一种专为清洁工人设计的自定义文本烟花效果。通过该功能,用户可以输入特定的感谢或祝福语句,系统将生成绚丽的烟花动画,以表达对清洁工人的敬意和感激之情。该特效不仅美观,还能增强用户的互动体验,提升公共场合的氛围。 ... [详细]
author-avatar
qapo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有