爬取豆瓣某本書的評論,並儲存到mysql資料庫

2021-10-04 21:44:47 字數 1931 閱讀 9072

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...