注:請勿用於其他用途,僅供學習使用
import requests
import re
import os
from lxml import etree
head =
defget_page
(book_id)
:"""獲取章節字段"""
# 所有章節介面https:
b_url =
''# 獲取文章內容
b_p_url =
''# **名//*[@id="j_textwrap"]/div/div/h1
# 章節名//div//h3/span/text()[1]
# 內容//div//p/span/text()
url = b_url + book_id
try: r = requests.get(url, headers=head)
r.raise_for_status(
) r.encoding =
'utf-8'
print
('獲取完成!。。。'
)# 章節詳細頁
page_list = re.findall(r''
, r.text)
# 建立**資料夾
n_url =
''+ book_id
r1 = requests.get(n_url, headers=head)
r1.raise_for_status(
) r1.encoding =
'utf-8'
novel_name = etree.html(r1.text)
.xpath(
'/html/body/div/div[6]/div[1]/div[2]/h1/em/text()')[
0]os.mkdir(
'./%s'
% novel_name)
# d_url = b_p_url + page_list[0]
# r2 = requests.get(d_url, headers=head)
# r2.encoding = 'utf-8'
# ttt = etree.html(r2.text).xpath('//div//h3/span/text()[1]')[1]
# j = '\n'
# content = j.join(ttt)
# print(content)
# print(ttt)
for each in page_list:
d_url = b_p_url + each
try: r2 = requests.get(d_url, header=head)
r2.raise_for_status(
) r2.encoding =
'utf-8'
# 內容
ttt = etree.html(r2.text)
.xpath(
'//div[@class="read-content j_readcontent"]/p/text()'
) j =
'\n'
content = j.join(ttt)
# 章節名
p_name = etree.html(r2.text)
.xpath(
'//div//h3/span/text()[1]')[
1]# 寫入檔案
with
open
('./%s/%s.txt'
%(novel_name, p_name)
,'w'
)as f:
f.write(content)
print
("finish"
)except exception as results:
print
(results)
except exception as result:
print
(result)
defmain()
:# u = input('將起點中文網**主頁鏈結貼上此處(請以+結尾):')
# 匹配出**id:1013414929#catlog來得到bookid
b_id = re.findall(r'(\d+)'
, u)[0
] get_page(b_id)
if __name__ ==
'__main__'
: main(
)
python 3 爬起點中文網,簡單分析
python 3之後,爬蟲相對來說簡單一些。主要會用到requests和beautifulsoup庫,reuqests代替瀏覽器傳送http請求並返回內容,返回的內容之前都是用正規表示式處理,當然現在也可以,不過現在beautifulsoup庫用得比較多。beautifulsoup處理html標籤,...
小刀 從起點中文網看SEO的發展勢在必然
最近起點 網有本非常熱門的玄幻 鬥破蒼穹 我說你可能不信,不過大家可以到搜尋中心看 搜尋排行榜。大家都喜歡的 我沒理由不去看,可起點在盛大旗下,不是vip無法閱讀最新章節,無奈,只能去看有哪位好心人免費提供最新章節了。一下鬥破蒼穹,因為我從事的是seo推廣工作,所以我就順便看了看首頁的排名情況,出乎...
2 C語言中文網學習Python
1.python注釋 單行注釋 多行注釋 說明多行 的功能時一般將注釋放在 的上一行,說明單行 的功能時一般將注釋放在 的右側 2.縮排 和其它程式語言 如 j a c 語言 採用大括號 分隔 塊不同,python 採用 縮排和冒號 來區分 塊之間的層次 3.內建函式和標準庫函式是不一樣的。4.算術...