python 简书_python爬取简书网文章的方法
python爬取簡書網文章的方法
發布時間:2020-06-30 14:37:08
來源:億速云
閱讀:100
作者:清晨
這篇文章主要介紹python爬取簡書網文章的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
python爬取簡書網文章的步驟:
1、準備工作,創建scrapy爬蟲,建立數據庫和表#?打開?CMD?或者終端到一個指定目錄
#?新建一個項目
scrapy?startproject?jianshu_spider
cd?jianshu_spider
#?創建一個爬蟲
scrapy?genspider?-t?crawl?jianshu?"jianshu.com"
2、爬取思路,檢查網頁的所有href屬性,獲取文章鏈接地址
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('//h2[@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爬取简书网文章的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark的安装与使用 第1关:Scal
- 下一篇: 定制开发小程序流程