国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

80行代碼爬取豆瓣Top250電影信息并導(dǎo)出到csv及數(shù)據(jù)庫

galaxy_robot / 1230人閱讀

摘要:查看源碼下載頁面并處理提取數(shù)據(jù)觀察該網(wǎng)站結(jié)構(gòu)可知該頁面下所有電影包含在標(biāo)簽下。使用語句獲取該標(biāo)簽在標(biāo)簽中遍歷每個(gè)標(biāo)簽獲取單個(gè)電影的信息。以電影名字為例清洗數(shù)據(jù)其余部分詳見源碼頁面跳轉(zhuǎn)檢查后頁標(biāo)簽。

查看源碼


1 下載頁面并處理
DOWNLOAD_URL = "http://movie.douban.com/top250/"
html = requests.get(url).text
tree = lxml.html.fromstring(html)

2 提取數(shù)據(jù)

觀察該網(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ù)

其余部分詳見源碼


3 頁面跳轉(zhuǎn)

檢查“后頁”標(biāo)簽。跳轉(zhuǎn)到下一頁面

next_page = DOWNLOAD_URL + tree.xpath("http://span[@class="next"]/a/@href")[0]

返回None則已獲取所有頁面。


4 導(dǎo)入csv

創(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)

其余部分詳見源碼


5 導(dǎo)入數(shù)據(jù)庫(以mysql為例)

先在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()

6 效果顯示


因Windows系統(tǒng)默認(rèn)以ANSI編碼打開Excel,所以直接用Excel打開csv文件會出現(xiàn)亂碼,需對其重新編碼。

以上所有內(nèi)容可以在80行Python代碼內(nèi)完成,很簡單吧。(`?ω?′)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/41012.html

相關(guān)文章

  • Python爬蟲 - scrapy - 爬取豆瓣電影TOP250

    摘要:前言新接觸爬蟲,經(jīng)過一段時(shí)間的實(shí)踐,寫了幾個(gè)簡單爬蟲,爬取豆瓣電影的爬蟲例子網(wǎng)上有很多,但都很簡單,大部分只介紹了請求頁面和解析部分,對于新手而言,我希望能夠有一個(gè)比較全面的實(shí)例。 0.前言 新接觸爬蟲,經(jīng)過一段時(shí)間的實(shí)踐,寫了幾個(gè)簡單爬蟲,爬取豆瓣電影的爬蟲例子網(wǎng)上有很多,但都很簡單,大部分只介紹了請求頁面和解析部分,對于新手而言,我希望能夠有一個(gè)比較全面的實(shí)例。所以找了很多實(shí)例和文...

    WalkerXu 評論0 收藏0
  • scrapy入門教程——爬取豆瓣電影Top250

    摘要:注意爬豆爬一定要加入選項(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)然...

    senntyou 評論0 收藏0
  • 爬蟲基礎(chǔ)練習(xí)一 爬取豆瓣電影TOP250

    摘要:對新手來說,難點(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...

    reclay 評論0 收藏0
  • 爬蟲學(xué)習(xí)之基于 Scrapy 的爬蟲自動登錄

    摘要:概述在前面兩篇爬蟲學(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)容...

    Panda 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<