from requests_html import htmlsession
import re
import time
from bs4 import beautifulsoup
import pymysql
defget_txt
(num_ye, num_book)
:"""
爬取資料
:param num_book: 爬取書的編號
:return:
"""session = htmlsession(
) headers =
for start in
range(1
, num_ye +1)
: url =
''+str
(num_book)
+'/reviews/?start='
+str
(start *10)
r = session.get(url, headers=headers, verify=
false
) s = re.findall(
'', r.text, flags=0)
# 獲取到的url位址去重
s =set(s)
for x in s:
r_xiangqing = session.get(
str(x)
, headers=headers, verify=
false
) html = r_xiangqing.text
bs = beautifulsoup(html)
for tag in bs.find_all(
'div'
, class_=
'review-content clearfix'):
insert_data(tag.get_text())
time.sleep(1)
# 關閉資料庫連線
close_mysql(
)def
connect_mysql()
:global conn
# 開啟資料庫連線 ip 使用者名稱 密碼 庫名
conn = pymysql.connect(
'localhost'
,'root'
,'123456'
,'shuping'
)def
insert_data
(data='')
:# 使用cursor()方法建立乙個游標物件
cursor = conn.cursor(
)# sql語句:向資料表中插入資料
sql =
"""insert into doubanbook(comments) value(%s)"""
# 異常處理
try:
# 執行sql語句
cursor.execute(sql,
(data)
)# 提交事務到資料庫執行
conn.commit(
)# 事務是訪問和更新資料庫的乙個程式執行單元
except
:# 如果發生錯誤則執行回滾操作
conn.rollback(
)def
close_mysql()
:# 關閉資料庫連線
conn.close(
)if __name__ ==
'__main__'
: connect_mysql(
)# 每頁資料共20條
get_txt(10,
25862578
)
結果:
Scrapy爬取並儲存到TXT檔案
在建立完成專案並建立爬蟲的基礎上,編寫儲存到txt的專案 1.將 robotstxt obey 設定為false 2.將 item pipelines 開啟 item是scrapy提供的類似於字典型別的資料容器,它與字典最大的區別在於它規定了統一的資料規格樣式,即具有統一性與結構性。這樣既方便資料的...
scrapy爬取資料並儲存到文字
1.scrapy專案結構如下 2.開啟spidler目錄下的duba.py檔案,如下 這個是根據豆瓣一部分頁面獲取的熱門話題內容,有6條資料 coding utf 8 import scrapy from scrapydemo.items import scrapydemoitem from lxm...
python 爬取HTML內容並儲存到txt檔案內
updatetime 2020 12 08 16 53 author wz file get webdetails software pycharm used 爬取任意頁面中任意資料 import re import urllib.request from utils.log import logg...