Tôi đang cố gắng tự học quét web bằng Python như một phần của nỗ lực học phân tích dữ liệu. Tôi đang cố gắng cạo trang web imdb có url như sau: http://www.imdb.com/search/title?sort=num_votes,desc&start=1&title_type=feature&year=1950,2012
Tôi đang sử dụng mô-đun BeautifulSoup. Sau đây là mã tôi đang sử dụng:
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
Tôi nhận được kết quả đầu ra sau đây:
The Shawshank Redemption [u'Crime', u'Drama'] 142 mins. (1994)
Sử dụng mã này, tôi có thể loại bỏ tiêu đề, thể loại, thời gian chạy và năm nhưng tôi không thể cạo id phim imdb, cũng như xếp hạng. Sau khi kiểm tra các yếu tố (trong trình duyệt chrome), tôi không thể tìm thấy một mẫu nào cho phép tôi sử dụng mã tương tự như trên.
Ai đó có thể giúp tôi viết đoạn mã sẽ cho phép tôi cạo id phim và xếp hạng không?
rating
không được xác định. Nếu bạn sửa nó, bạn cũng có thể thêmfrom BeautifulSoup import BeautifulSoup
vàimport requests
. Và tại sao không thể hiệnurl="http://etc"
để chúng ta không phải làm điều đó cho chính mình?