Python抓取豆瓣電影top250!

前言

一直對爬蟲感興趣,學了python後正好看到某篇關於爬取的文章,就心血來潮實戰一把吧。固然若是你學的很差,建議能夠先去小編的Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下能夠找到了,裏面有最新Python教程項目,一塊兒交流學習進步!python

實現目標:抓取豆瓣電影top250,並輸出到文件中web

1.找到對應的url:https://movie.douban.com/top250網絡

2.進行頁面元素的抓取:app

 

3.編寫代碼:post

  第一步:實現抓取第一個頁面;學習

  第二步:將其餘頁面的信息也抓取到;編碼

  第三步:輸出到文件;url

 

4.代碼: spa

import sys
import io
from selenium import webdriver

#改變標準輸出,解決輸出到文件時遇到的編碼問題。
# 若是輸出到控制行,不要加這一行
# sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')

class DouBan:
#初始化driver對象,打開頁面,最大化頁面
def __init__(self):
self.driver=webdriver.Chrome()
self.driver.get('https://movie.douban.com/top250')
self.driver.maximize_window()

# 分頁判斷,默認顯示第一頁,輸出第一頁後,點擊下一頁按鈕,再輸出。總共10頁
def get_content(self):
for page in range(1,10):
#獲取元素定位: 對當前頁面中 單個電影元素進行定位
movie = self.driver.find_elements_by_class_name('info')

# for循環:循環輸出當前頁面中單部影片的電影信息(text輸出元素的文本內容);
i = 1
for item in movie:
#輸出格式: 電影序號 + 電影介紹 +換行展現
print(str(i+ page*25-25)+": "+item.text+'')
print("")
i+=1

# 判斷:若是當前頁面碼小於10,則查找頁碼的元素,並點擊頁碼。不然不用進行查找,由於最多點擊第10頁;
# 獲取底部的頁籤元素(採用了format格式輸出,根據當前頁面作加1操做)
if page<10:
page_but = self.driver.find_element_by_xpath('//div[@class="paginator"]//a[contains(text(),{0})]'.format(page + 1))
page_but.click()
else:
pass

if __name__ == '__main__':
DouBan().get_content()

5.結果:

1)控制檯輸出部分截圖:

 

2)若是想要輸出到文件,執行命令並重定向到TXT文件中:

 python xxxx.py >d:/out_test.txt

 

6.遇到的問題:

1.多頁時,for循環的數字設置,來回試幾回就能夠了,不難。

2.輸出到文件中

 

 真的很簡單,不知道大家都懂了沒? 若是沒懂能夠去小編的Python交流.裙 :一久武其而而流一思(數字的諧音)轉換下能夠找到了,裏面有最新Python教程項目,一塊兒交流學習進步!有問題留言問我吧~

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息