Python-selenium翻頁爬取csdn博客保存數據入mysql


 csdn博客部分截圖

博客鏈接:https://blog.csdn.net/kevinelstri/article/list/1?

此次目的是要爬取文章標題,發表文章時間以及閱讀數量

1.瀏覽器打開網址,選擇一個右擊標題,審查元素。如圖

通過觀察可以發現每篇文章有一個div,格式大多相同,就可以寫爬取代碼了

2.爬取文章標題,時間,閱讀數的網頁定位代碼:

count=driver.find_elements_by_xpath("//div[@class='article-list']/div[position()>1]/div/p[3]/span/span")
time=driver.find_elements_by_xpath("//div[@class='article-list']/div[position()>1]/div/p[1]/span")
content=driver.find_elements_by_xpath("//div[@class='article-list']/div[position()>1]/h4/a")

三條代碼都是通過xpath定位元素

3.取出爬取元素的值,並且打包成列表(方便數據的對應存儲)

time_list=[]
content_list=[]
count_list=[]
for t in time:
time_list.append(t.text)
for c in content:
content_list.append(c.text)
for c in count:
count_list.append(c.text)
end1=list(zip(content_list,time_list,count_list))#將爬取的標題和時間壓縮成列表

4.將爬取的數據存入數據庫(原本已經在數據庫test下建立了表格climb_boke),

這里選擇寫了個自定義函數

def Mysql(data):
conn=MySQLdb.connect(host='localhost',user='root',passwd='cmy1234',port=3306)
cur=conn.cursor()
conn.set_character_set('utf8')#設置編碼
cur.execute('set names utf8;')
cur.execute('set character set utf8;')
cur.execute('set character_set_connection=utf8;')
cur.execute('use test')
sql='''insert into climb_boke(title,time,count) values(%s,%s,%s)'''
for i in range(0,len(data)):
cur.execute(sql,list(data[i]))#插入的數據必須是列表形勢
print("插入數據成功")
cur.execute('select* from climb_boke')
for data in cur.fetchall():
print(data)
conn.commit()
cur.close()
conn.close()

整體代碼:

這里翻頁我只取了兩頁,可以做修改

while k<=2:
url='https://blog.csdn.net/kevinelstri/article/list/'+str(k)+'?'

最終Navicat查看的成果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM