最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python怎么爬取简书网文章

    正文概述    2020-09-29   216

    python怎么爬取简书网文章

    python爬取简书网文章的步骤:

    1、准备工作,创建scrapy爬虫,建立数据库和表

    # 打开 CMD 或者终端到一个指定目录
    # 新建一个项目
    scrapy startproject jianshu_spider
    cd jianshu_spider
    # 创建一个爬虫
    scrapy genspider -t crawl jianshu "jianshu.com"

    python怎么爬取简书网文章

    2、爬取思路,检查网页的所有href属性,获取文章链接地址

    python怎么爬取简书网文章

    3、代码实现,解析主页网址获取文章链接,构建item模型保存数据,将获取的数据保存到数据库中

    第一步是指定开始爬取的地址和爬取规则。

    allowed_domains = ['jianshu.com'] 
    start_urls = ['https://www.jianshu.com/']  
    rules = (        # 文章id是有12位小写字母或者数字0-9构成        
    Rule(LinkExtractor(allow=r'.*/p/[0-9a-z]{12}.*'), callback='parse_detail', follow=True),    )

    第二步是拿到下载器下载后的数据 Response,利用 Xpath 语法获取有用的数据。这里可以使用「 Scrapy shell url 」去测试数据是否获取正确。

    # 获取需要的数据 

    title = response.xpath('//h1[@class="title"]/text()').get() 
    author = response.xpath('//div[@class="info"]/span/a/text()').get() 
    avatar = self.HTTPS + response.xpath('//div[@class="author"]/a/img/@src').get() 
    pub_time = response.xpath('//span[@class="publish-time"]/text()').get().replace("*", "")
    current_url = response.url real_url = current_url.split(r"?")[0] 
    article_id = real_url.split(r'/')[-1] 
    content = response.xpath('//div[@class="show-content"]').get()

    然后构建 Item 模型用来保存数据。

    import scrapy
    # 文章详情Itemclass ArticleItem(scrapy.Item):    
    title = scrapy.Field()    
    content = scrapy.Field()    
    # 文章id   
    article_id = scrapy.Field()   
    # 原始的url  
    origin_url = scrapy.Field()    
    # 作者    
    author = scrapy.Field()    
    # 头像    
    avatar = scrapy.Field()    
    # 发布时间    
    pubtime = scrapy.Field()

    第三步是将获取的数据通过 Pipline 保存到数据库中。

    # 数据库连接属性
    db_params = {            
    'host': '127.0.0.1',            
    'port': 3306,            
    'user': 'root',          
    'password': 'root',         
     'database': 'jianshu',          
    'charset': 'utf8'
    }
    # 数据库【连接对象】
    self.conn = pymysql.connect(**db_params)
    # 执行 sql 语句
    self.cursor.execute(self._sql,(item['title'],item['content'],item['author'],item['avatar'],item['pubtime'],item['article_id'],item['origin_url']))
    # 插入到数据库中
    self.conn.commit()
    # 关闭游标资源
    self.cursor.close()

    执行结果如下:

    python怎么爬取简书网文章

    更多Python知识,请关注:Python自学网!!


    起源地下载网 » python怎么爬取简书网文章

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元