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.中国で最高の大学のランキングをクロールする(例)
参考記事:ここをクリックして入手