python爬蟲17k**網資料
有一些庫可能沒有用,當時寫的時候參考了很多書籍資料,書籍裡用了,我沒有用,但是本著懶的原則,我就沒有特意把那些沒有用到的庫刪掉。
因為我們老師對注釋特別強調,為了不讓老師抓錯,我就把除了import的**外的**都加了注釋。
from bs4 import beautifulsoup
from datetime import datetime
import urllib.request
import requests
import re
from requests import requestexception
import os
from xlwt import
*import xlwt
import xlrd
import pip
import pandas as pd
from lxml import etree
from openpyxl import workbook
url=
''#爬取的目標**
newurl=
''#目標**的主**
headers=
#身份表示
#根據得到的url獲取html檔案
request=urllib.request.request(url,headers=headers)
for i in
range(0
,9):
#輸出8個頁面的資料
data=
url2=
'all/book/2_22_0_0_0_0_0_1_'
+str
(i*30)+
'.html'
#輸出的頁面們的**,根據for迴圈的i來表示更改
res=requests.get(url2,headers=headers)
#獲取這個**的檔案內容
res = requests.get(url2)
# 開啟網頁並且閱讀
res.encoding =
'utf-8'
# 網頁解碼為utf-8
soup = beautifulsoup(res.text,
'html.parser'
)# 解析網頁
html2=res.content.decode(
'utf-8'
)#**轉碼為utf-8
print
('*'*10
+str
(i)+
'頁'+
'*'*10)
#區分爬取到了哪一頁
result =
#將儲存資料為字典的形式,字典的名字叫result
for news in soup.select(
'.alltextmiddle'):
#資訊在.alltextmiddle這個類裡面,需要迴圈取出if(
len(news.select(
'div.alltextlist>div.alltextmiddle>dl>dt>a'))
>0)
:#去除為空的資料
name=news.select(
'div.alltextlist>div.alltextmiddle>dl>dt>a')[
0].text
#書名主要被儲存在div.alltextlist>div.alltextmiddle>dl>dt>a這個路徑裡面
a=news.select(
'div.alltextlist>div.alltextmiddle>dl>dt>a')[
0]['href'
]#書的鏈結主要被儲存在div.alltextlist>div.alltextmiddle>dl>dt>a,鏈結
writer=news.select(
'div.alltextlist>div.alltextmiddle>dl>dd>ul>li>span.ls>a')[
0].text
#儲存書的作者名稱
time=news.select(
'cite')[
0].text
#書的最新更新時間的儲存
zishu=news.select(
'code')[
0].text
#儲存書寫到目前為止的總字數
biaoqian=news.select(
'div.alltextlist>div.alltextmiddle>dl>dd>ul>li.bq10>p>a')[
0].text
#儲存這本書的標籤
result[
'書名'
]=name
#字典的key是書名,value值是name,一一對應
result[
'鏈結'
]=a
#字典的key是書的鏈結,value值是a,一一對應
result[
'作者'
]=writer
#字典的key是書的作者,value值是writer,一一對應
result[
'最近更新時間'
]=time
#字典的key是最近更新時間,value值是time,一一對應
result[
'字數'
]=zishu
#字典的key是字數,value值是zishu,一一對應
result[
'標籤'
]=biaoqian
#字典的key是標籤,value值是biaoqian,一一對應
print
(f''
)#輸出整個儲存資料的result字典
#儲存資料
with
open
(r'h1.csv'
,'a'
,encoding=
'utf-8'
)as f:
#儲存在h1.csv裡面,指定的開啟方式是以a(追加的方式),指定的編碼為'utf-8'
f.write(
'{},{},{},{},{},{}\n'
.format
(name,a,writer,time,zishu,biaoqian)
)#寫入檔案
執行儲存在csv檔案:
流程圖:
(有點瞎畫的嫌疑,因為我雖然知道過程是怎麼做的,但是流程圖畫的很水。)
以後繼續努力呀~
全本小說網小說爬蟲
coding utf 8 import requests from pyquery import pyquery import re import os 構造請求頭 headers todo 1.根據 鏈結得到 目錄和對應的url def get catalogue url 傳送請求 respons...
酷虎小說網爬蟲
import requests from pyquery import pyquery import re import os 構造請求頭 headers todo 1.根據 鏈結得到 目錄和對應的url def get catalogue url 傳送請求 response requests.ge...
入門級爬蟲 17k小說站爬取指定小說
執行py檔案前,需要先安裝這2個包 pip install beautifulsoup4 pip install requests usr bin env python3.7 coding utf 8 author by slo from bs4 import beautifulsoup impor...