標籤:
在網上看到有人利用python+beautifulsoup爬取豆瓣Top250
試著自己模仿這個做了個爬取IMDB的,
可惜只能爬取到11個。
後來檢查了超久,
才發現,
soup=BeautifulSoup(contents)這裡,內容不完整,只能到11個電影為止。
代碼如下:
import urllib2from bs4 import BeautifulSoupmylist=[]def crawl(url): headers={‘User-Agent‘:‘Mozilla/5.0(Windows;U;Windows NT 6.1;en-US;rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6‘} req=urllib2.Request(url,headers=headers) page=urllib2.urlopen(req,timeout=200) contents=page.read() soup=BeautifulSoup(contents) for tag in soup.find_all(‘tr‘,class_={‘odd‘,‘even‘}): m_order=tag.find(‘td‘,class_=‘titleColumn‘).span.get_text() m_name=tag.find(‘td‘,class_=‘titleColumn‘).a.get_text() m_rating_score=float(tag.find(‘td‘,class_=‘ratingColumn imdbRating‘).strong.get_text()) print("%s %s %s" % (m_order,m_name,m_rating_score)) mylist.append((m_order,m_name,m_rating_score))crawl(‘http://www.imdb.com/chart/top?ref_=nv_ch_250_4‘)
後來,好像需使用Regex,把爬取來的網頁進行處理後才好弄。
但是Regex未操作過,
如果有人看到,想問下是否可以不通過Regex來解決這個問題呢?
【Python】爬取IMDBTOP250