您好,登錄后才能下訂單哦!
今天小編給大家分享一下python爬取豆瓣電影TOP250數據的代碼怎么寫的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
在執行程序前,先在MySQL中創建一個數據庫"pachong"。
import pymysql
import requests
import re
#獲取資源并下載
def resp(listURL):
#連接數據庫
conn = pymysql.connect(
host = '127.0.0.1',
port = 3306,
user = 'root',
password = '******', #數據庫密碼請根據自身實際密碼輸入
database = 'pachong',
charset = 'utf8'
)
#創建數據庫游標
cursor = conn.cursor()
#創建列表t_movieTOP250(執行sql語句)
cursor.execute('create table t_movieTOP250(id INT PRIMARY KEY auto_increment NOT NULL ,movieName VARCHAR(20) NOT NULL ,pictrue_address VARCHAR(100))')
try:
# 爬取數據
for urlPath in listURL:
# 獲取網頁源代碼
response = requests.get(urlPath)
html = response.text
# 正則表達式
namePat = r'alt="(.*?)" src='
imgPat = r'src="https://atts.yisu.com/attachments/(.*?)" class='
# 匹配正則(排名【用數據庫中id代替,自動生成及排序】、電影名、電影海報(圖片地址))
res2 = re.compile(namePat)
res3 = re.compile(imgPat)
textList2 = res2.findall(html)
textList3 = res3.findall(html)
# 遍歷列表中元素,并將數據存入數據庫
for i in range(len(textList3)):
cursor.execute('insert into t_movieTOP250(movieName,pictrue_address) VALUES("%s","%s")' % (textList2[i],textList3[i]))
#從游標中獲取結果
cursor.fetchall()
#提交結果
conn.commit()
print("結果已提交")
except Exception as e:
#數據回滾
conn.rollback()
print("數據已回滾")
#關閉數據庫
conn.close()
#top250所有網頁網址
def page(url):
urlList = []
for i in range(10):
num = str(25*i)
pagePat = r'?start=' + num + '&filter='
urL = url+pagePat
urlList.append(urL)
return urlList
if __name__ == '__main__':
url = r"https://movie.douban.com/top250"
listURL = page(url)
resp(listURL)
以上就是“python爬取豆瓣電影TOP250數據的代碼怎么寫”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。