Я намагаюся навчитися веб-вискоблюванню за допомогою Python самостійно як частина зусиль для вивчення аналізу даних. Я намагаюся скребити веб-сторінку imdb, URL-адреса якої: http://www.imdb.com/search/title?sort=num_votes,desc&start=1&title_type=feature&year=1950,2012
Я використовую модуль BeautifulSoup. Далі йде код, який я використовую:
r = requests.get(url) # where url is the above url
bs = BeautifulSoup(r.text)
for movie in bs.findAll('td','title'):
title = movie.find('a').contents[0]
genres = movie.find('span','genre').findAll('a')
genres = [g.contents[0] for g in genres]
runtime = movie.find('span','runtime').contents[0]
year = movie.find('span','year_type').contents[0]
print title, genres,runtime, rating, year
Я отримую такі результати:
The Shawshank Redemption [u'Crime', u'Drama'] 142 mins. (1994)
Використовуючи цей код, я міг скребкувати заголовок, жанр, час виконання та рік, але я не зміг скребкувати ідентифікаційний код фільму, ні рейтинг. Після огляду елементів (у хромованому браузері) я не в змозі знайти шаблон, який дозволить мені використовувати аналогічний код, як описано вище.
Хтось може допомогти мені написати фрагмент коду, який дозволить мені скребкувати ідентифікатор фільму та рейтинги?
rating
не визначений. Якщо ви виправите це, ви можете також додатиfrom BeautifulSoup import BeautifulSoup
іimport requests
. А чому б і не показати,url="http://etc"
щоб ми не мали цього робити для себе?