CSDN文章の抽出

2875 ワード

文章の最初の住所:沧月の二福君の個人のブログが好きです


title:CSDN文章爬取date:2019-06-09 13:17:26 tags:
  • CSDN
  • python category:テクノロジー---
  • けいかく


    先日、個人ブログを新規作成したので、csdnのブログをここに移行しようとしましたが、ワンタッチ移行機能がうまく使えなかったので、思いついたので、直接登って、再送時間:3時間予想結果:ブログ記事をローカルに保存

    インプリメンテーションプロセス

  • 文章リストを見つけ、文章の抽出を行い、文章のurl情報を抽出する.
  • 文章内容の解析を行い、文章内容を抽出する.
  • はローカルに保存されます.
  • 記事スタイルの保存を試みる
  • 使用するテクノロジー


    python言語で完了し、pyqueryライブラリを使用してスクロールします.

    エンコーディング

  • 文章ページを分析し、内容の抽出コードは以下の通りである:
  •    article = doc('.blog-content-box')
       # 
       title = article('.title-article').text()
       # 
       content = article('.article_content')
    
  • 文章の保存を行う
  •  dir = "F:/python-project/SpiderLearner/CSDNblogSpider/article/"+title+'.txt'
            with open(dir, 'a', encoding='utf-8') as file:
                file.write(title+'
    '+content.text())
  • 文章のurlの抽出
  • urls = doc('.article-list .content a')
        return urls
  • ページング
  •     for i in range(3):
            print(i)
            main(offset = i+1)
  • コード統合

    完全なコード

  • #!/usr/bin/env python
    # _*_coding:utf-8 _*_
    #@Time    :2019/6/8 0008   11:00
    #@Author  : ([email protected])
    #@FileName: CSDN.py
    
    #@Software: PyCharm
    
    import requests
    from pyquery import PyQuery as pq
    
    def find_html_content(url):
        headers = {
                    'User-Agent': 'Mozilla/5.0(Macintosh;Inter Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gerko) Chrome/52.0.2743.116 Safari/537.36'
                }
        html = requests.get(url,headers=headers).text
        return html
    def read_and_wiriteblog(html):
        doc = pq(html)
    
        article = doc('.blog-content-box')
        # 
        title = article('.title-article').text()
    
        content = article('.article_content')
    
        try:
            dir = "F:/python-project/SpiderLearner/CSDNblogSpider/article/"+title+'.txt'
            with open(dir, 'a', encoding='utf-8') as file:
                file.write(title+'
    '+content.text()) except Exception: print(" ") def geturls(url): content = find_html_content(url) doc = pq(content) urls = doc('.article-list .content a') return urls def main(offset): url = ' ' + str(offset) urls = geturls(url) for a in urls.items(): a_url = a.attr('href') print(a_url) html = find_html_content(a_url) read_and_wiriteblog(html) if __name__ == '__main__': for i in range(3): print(i) main(offset = i+1)

    転載先:https://www.cnblogs.com/miria-486/p/10993272.html