Pythonクローラーは、新しいランキングのリストをクロールし、Excelにインポートして簡単にスクリーニングできるようにします

requests + bs4 + xlwtモジュール-単純なクローラーの例-新しいランキングリスト-Biqugeの記事

小説コンテンツの記事へのリンクをクロールします:ポータル

セクション1:ステートメント

1.この記事のクロールされたコンテンツは、ユーザーが無料でコンテンツを表示するためのものです。
2.この記事は私自身の研究ノートであり、商用目的で使用されることはありません。
3.この記事に違反がある場合は、記事を削除するために私に連絡してください!

セクション2:コンテンツクロール分析:

ランキングをクロールしてデータをフィルタリングする必要があるため、複数のページをクロールする必要があります。次に、最初に各ページのURLの変更を見てみましょう。ルールに従うことができる場合もあります。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
比較すると、パターンをすばやく見つけて、この場所でリリースループを使用できます。

    for i in range(1, 5):  # 根据想要爬的页数而改动
        url = 'https://www.52bqg.net/top/allvisit/{}.html'.format(i+1)

次に、ページをチェックして分析します。
ここに画像の説明を挿入します
ルールも非常にわかりやすく、liノードは小説の内容に対応しています。bs4を使用すると、内容を簡単に抽出できます。
コンテンツを抽出した後、コンテンツを保存します。xlwtモジュールを使用してコンテンツをExcelにインポートします。ここでは、コードを直接配置します。

list_all = list()
path = 'D:/笔趣阁目录.xls'
workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)
worksheet = workbook.add_sheet('小说目录', cell_overwrite_ok=True)  # 可覆盖  # 设置工作表名
col = ('小说类型', '小说名', '最新章节', '作者', '最新更新时间')
for i in range(0, 5):
   worksheet.write(0, i, col[i])  # 设置列名
for i in range(1, 5):  # 根据想要爬的页数而改动
   url = 'https://www.52bqg.net/top/allvisit/{}.html'.format(i)
   data_list = get_content(url)
   list_all.append([data_list])
for i in range(len(list_all)):  # i=0~1
   sleep(0.5)  # 延迟0.5秒)
   print('正在下载第{}页目录=====>  请稍后'.format(i+1))
   data_s = list_all[i]
   for j in range(len(data_s)):  # j=0
       data = data_s[j]
       for k in range(len(data)):  # k=0~49
           data_simple = data[k]
           for m in range(0, 5):  # m=0~4
               worksheet.write(1 + i * 50 + k, m, data_simple[m])
workbook.save(path)

(私もこの例のおかげで、xlwtを学んだばかりで、参照した記事を後ろに置きました。)

セクション3:完全なコード

import requests
import bs4
import xlwt
from time import sleep
headers = {
    
    
     'user - agent': 'Mozilla / 5.0(WindowsNT10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 80.0.3987.116Safari / 537.36'
}


def get_content(url):
    res = requests.get(url=url, headers=headers)
    html = res.text
    soup = bs4.BeautifulSoup(html, 'html.parser')
    soup = soup.select('.novelslistss li')
    list_all = []
    for novel in soup[0: 50]:
        novel_type = novel.select('.s1')[0].string
        novel_name = novel.select('.s2 a')[0].string
        latest_chapters = novel.select('.s3 a')[0].string
        author = novel.select('.s4')[0].string
        update_time = novel.select('.s5')[0].string
        list_all.append([novel_type, novel_name, latest_chapters, author, update_time])
    return list_all


def main():
    list_all = list()
    path = 'D:/笔趣阁目录.xls'
    workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)
    worksheet = workbook.add_sheet('小说目录', cell_overwrite_ok=True)  # 可覆盖  # 设置工作表名
    col = ('小说类型', '小说名', '最新章节', '作者', '最新更新时间')
    for i in range(0, 5):
        worksheet.write(0, i, col[i])  # 设置列名
    for i in range(1, 5):  # 根据想要爬的页数而改动
        url = 'https://www.52bqg.net/top/allvisit/{}.html'.format(i)
        data_list = get_content(url)
        list_all.append([data_list])
    for i in range(len(list_all)):  # i=0~1
        sleep(0.5)  # 延迟0.5秒)
        print('正在下载第{}页目录=====>  请稍后'.format(i+1))
        data_s = list_all[i]
        for j in range(len(data_s)):  # j=0
            data = data_s[j]
            for k in range(len(data)):  # k=0~49
                data_simple = data[k]
                for m in range(0, 5):  # m=0~4
                    worksheet.write(1 + i * 50 + k, m, data_simple[m])
    workbook.save(path)
    print('所检索所有页面目录=======>   全部保存成功!'.format(i))


if __name__ == '__main__':
    main()

セクション4:実行結果

ここに画像の説明を挿入します
ここに画像の説明を挿入します
フィルタ機能を使用して、お気に入りの小説を複数の条件でフィルタリングできます。

セクション5:参考記事と学習リンク

1.PythonモジュールxlwtはExcelに書き込みます

参考記事:送信するにはここをクリック

2.中国で最高の大学のランキングをクロールする(例)

参考記事:ここをクリックして入手

おすすめ

転載: blog.csdn.net/qq_44921056/article/details/113832307