scrapy抓取豆瓣電影TOP250

2021-08-01 17:04:27 字數 3331 閱讀 2808

scrapy入門級的學習

關於scrapy學習的要點:

(1)css選擇器選擇元素

scrapy提供css和xpath兩種選擇器來提取html元素,因為我對css更熟,這裡用的就是css。

(2)對item和pipeline的理解

item是存放資料的容器,pipline用來處理抓取後放在item中的資料。

環境

ubuntu14

python3.5

scrapy 1.3.3

遇到的問題

(1)403無法訪問,於是模仿瀏覽器,在setting配置user_agent,**會以為你是通過瀏覽器訪問

(2)json檔案unicode亂碼,通過引入pipline控制,寫入檔案時候的編碼格式

結果截圖

不用框架爬豆瓣電影top250

python2

#!/usr/bin/env python

# encoding=utf-8

"""爬取豆瓣電影top250 - 完整示例**

"""import codecs

import requests

from bs4 import beautifulsoup

download_url = ''

defdownload_page

(url):

return requests.get(url, headers=).content

defparse_html

(html):

soup = beautifulsoup(html)

movie_list_soup = soup.find('ol', attrs=)

movie_name_list =

for movie_li in movie_list_soup.find_all('li'):

detail = movie_li.find('div', attrs=)

movie_name = detail.find('span', attrs=).gettext()

next_page = soup.find('span', attrs=).find('a')

if next_page:

return movie_name_list, download_url + next_page['href']

return movie_name_list, none

defmain

(): url = download_url

with codecs.open('movies.txt', 'wb', encoding='utf-8') as fp:

while url:

html = download_page(url)

movies, url = parse_html(html)

fp.write(u'\n'.format(movies='\n'.join(movies)))

if __name__ == '__main__':

main()

抓取豆瓣電影Top250影評資料

我們先觀察豆瓣電影top250任意一頁的url位址的格式。先觀察第二頁。豆瓣top page2 熟悉了url格式,下面用urllib庫試著抓取頁面內容 我們以物件導向的編碼方式編寫這個頁面抓取程式。定義乙個類名movietop,在類中定義乙個初始化方法和乙個獲取頁面的方法。我們把一些基本資訊和引數初...

Python小爬蟲 抓取豆瓣電影Top250資料

寫leetcode太累了,偶爾練習一下python,寫個小爬蟲玩一玩 比較簡單,抓取豆瓣電影top250資料,並儲存到txt 上傳到資料庫中。通過分析可以發現,不同頁面之間是有start的值在變化,其他為固定部分。以物件導向的編碼方式編寫這個程式,養成好的編碼習慣。基本資訊在 init 函式中初始化...

Python python抓取豆瓣電影top250

一直對爬蟲感興趣,學了python後正好看到某篇關於爬取的文章,就心血來潮實戰一把吧。實現目標 抓取豆瓣電影top250,並輸出到檔案中 1.找到對應的url 2.進行頁面元素的抓取 3.編寫 第一步 實現抓取第乙個頁面 第二步 將其他頁面的資訊也抓取到 第三步 輸出到檔案 4.5.結果 1 控制台...