ฉันพยายามเรียนรู้การขูดเว็บโดยใช้ 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)
ด้วยการใช้รหัสนี้ฉันสามารถขูดชื่อประเภทไทม์และปี แต่ฉันไม่สามารถคัดลอก iddb ภาพยนตร์ id หรือการจัดอันดับ หลังจากตรวจสอบองค์ประกอบ (ในเบราว์เซอร์โครม) ฉันไม่สามารถหารูปแบบที่จะให้ฉันใช้รหัสที่คล้ายกันข้างต้น
ใครช่วยฉันเขียนรหัสที่จะให้ฉันขูดรหัสภาพยนตร์และการให้คะแนน?
rating
ไม่ได้กำหนดไว้ หากคุณแก้ไขนั้นคุณยังสามารถเพิ่มและfrom BeautifulSoup import BeautifulSoup
import requests
และทำไมไม่แสดงด้วยurl="http://etc"
ดังนั้นเราไม่ต้องทำเพื่อตัวเราเอง?