摘要:查看源碼下載頁面并處理提取數(shù)據(jù)觀察該網(wǎng)站結(jié)構(gòu)可知該頁面下所有電影包含在標(biāo)簽下。使用語句獲取該標(biāo)簽在標(biāo)簽中遍歷每個(gè)標(biāo)簽獲取單個(gè)電影的信息。以電影名字為例清洗數(shù)據(jù)其余部分詳見源碼頁面跳轉(zhuǎn)檢查后頁標(biāo)簽。
查看源碼
DOWNLOAD_URL = "http://movie.douban.com/top250/" html = requests.get(url).text tree = lxml.html.fromstring(html)
觀察該網(wǎng)站html結(jié)構(gòu)
可知該頁面下所有電影包含在 ol 標(biāo)簽下。每個(gè) li 標(biāo)簽包含單個(gè)電影的內(nèi)容。
使用XPath語句獲取該ol標(biāo)簽
movies = tree.xpath("http://ol[@class="grid_view"]/li")
在ol標(biāo)簽中遍歷每個(gè)li標(biāo)簽獲取單個(gè)電影的信息。
以電影名字為例
for movie in movies: name_num = len(movie.xpath("descendant::span[@class="title"]")) name = "" for num in range(0, name_num): name += movie.xpath("descendant::span[@class="title"]")[num].text.strip() name = " ".join(name.replace("/", "").split()) # 清洗數(shù)據(jù)
其余部分詳見源碼
檢查“后頁”標(biāo)簽。跳轉(zhuǎn)到下一頁面
next_page = DOWNLOAD_URL + tree.xpath("http://span[@class="next"]/a/@href")[0]
返回None則已獲取所有頁面。
創(chuàng)建csv文件
writer = csv.writer(open("movies.csv", "w", newline="", encoding="utf-8")) fields = ("rank", "name", "score", "country", "year", "category", "votes", "douban_url") writer.writerow(fields)
其余部分詳見源碼
先在mysql中創(chuàng)建數(shù)據(jù)庫與表,表的屬性應(yīng)與要插入的數(shù)據(jù)保持一致
連接數(shù)據(jù)庫db = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd=PWD, db="douban",charset="utf8")
創(chuàng)建游標(biāo)cur = db.cursor()
將獲取的電影信息導(dǎo)入數(shù)據(jù)庫
sql = "INSERT INTO test(rank, NAME, score, country, year, " "category, votes, douban_url) values(%s,%s,%s,%s,%s,%s,%s,%s)" try: cur.executemany(sql, movies_info) db.commit() except Exception as e: print("Error:", e) db.rollback()
以上所有內(nèi)容可以在80行Python代碼內(nèi)完成,很簡單吧。(`?ω?′)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41012.html
摘要:前言新接觸爬蟲,經(jīng)過一段時(shí)間的實(shí)踐,寫了幾個(gè)簡單爬蟲,爬取豆瓣電影的爬蟲例子網(wǎng)上有很多,但都很簡單,大部分只介紹了請求頁面和解析部分,對于新手而言,我希望能夠有一個(gè)比較全面的實(shí)例。 0.前言 新接觸爬蟲,經(jīng)過一段時(shí)間的實(shí)踐,寫了幾個(gè)簡單爬蟲,爬取豆瓣電影的爬蟲例子網(wǎng)上有很多,但都很簡單,大部分只介紹了請求頁面和解析部分,對于新手而言,我希望能夠有一個(gè)比較全面的實(shí)例。所以找了很多實(shí)例和文...
摘要:注意爬豆爬一定要加入選項(xiàng),因?yàn)橹灰馕龅骄W(wǎng)站的有,就會自動進(jìn)行過濾處理,把處理結(jié)果分配到相應(yīng)的類別,但偏偏豆瓣里面的為空不需要分配,所以一定要關(guān)掉這個(gè)選項(xiàng)。 本課只針對python3環(huán)境下的Scrapy版本(即scrapy1.3+) 選取什么網(wǎng)站來爬取呢? 對于歪果人,上手練scrapy爬蟲的網(wǎng)站一般是官方練手網(wǎng)站 http://quotes.toscrape.com 我們中國人,當(dāng)然...
摘要:對新手來說,難點(diǎn)部分在于如何找到并成功跳轉(zhuǎn)到下一頁,并且在最后一頁的時(shí)候識別出來并停止爬蟲。一個(gè)很基礎(chǔ)的爬蟲。 這是一個(gè)很好的新手練習(xí)項(xiàng)目,爬取豆瓣top250的電影,并分別記錄排名、片名、導(dǎo)演、主演、評論等信息,保存在一個(gè)txt文檔里。對新手來說,難點(diǎn)部分在于如何找到并成功跳轉(zhuǎn)到下一頁,并且在最后一頁的時(shí)候識別出來并停止爬蟲。 一個(gè)很基礎(chǔ)的爬蟲。以下是代碼部分。 import req...
摘要:概述在前面兩篇爬蟲學(xué)習(xí)之基于的網(wǎng)絡(luò)爬蟲和爬蟲學(xué)習(xí)之簡單的網(wǎng)絡(luò)爬蟲文章中我們通過兩個(gè)實(shí)際的案例,采用不同的方式進(jìn)行了內(nèi)容提取。 概述 在前面兩篇(爬蟲學(xué)習(xí)之基于Scrapy的網(wǎng)絡(luò)爬蟲和爬蟲學(xué)習(xí)之簡單的網(wǎng)絡(luò)爬蟲)文章中我們通過兩個(gè)實(shí)際的案例,采用不同的方式進(jìn)行了內(nèi)容提取。我們對網(wǎng)絡(luò)爬蟲有了一個(gè)比較初級的認(rèn)識,只要發(fā)起請求獲取響應(yīng)的網(wǎng)頁內(nèi)容,然后對內(nèi)容進(jìn)行格式化存儲。很多時(shí)候我們抓取到的內(nèi)容...
閱讀 893·2021-11-22 12:04
閱讀 2095·2021-11-02 14:46
閱讀 619·2021-08-30 09:44
閱讀 2102·2019-08-30 15:54
閱讀 721·2019-08-29 13:48
閱讀 1594·2019-08-29 12:56
閱讀 3448·2019-08-28 17:51
閱讀 3286·2019-08-26 13:44