抓取網頁資料的思路有好多種,一般有:直接代碼請求http、類比瀏覽器請求資料(通常需要登入驗證)、控制瀏覽器實現資料抓取等。這篇不考慮複雜情況,放一個讀取簡單網頁資料的小例子:
目標資料
將ittf網站上這個頁面上所有這些選手的超連結儲存下來。
資料請求
真的很喜歡符合人類思維的庫,比如requests,如果是要直接拿網頁文本,一句話搞定:
doc = requests.get(url).text
解析html獲得資料
以beautifulsoup為例,包含擷取標籤、連結,以及根據html階層遍曆等方法。參考見這裡。下面這個片段,從ittf網站上擷取指定頁面上指定位置的連結。
url = 'http://www.ittf.com/ittf_ranking/WR_Table_3_A2.asp?Age_category_1=&Age_category_2=&Age_category_3=&Age_category_4=&Age_category_5=&Category=100W&Cont=&Country=&Gender=W&Month1=4&Year1=2015&s_Player_Name=&Formv_WR_Table_3_Page='+str(page)doc = requests.get(url).textsoup = BeautifulSoup(doc)atags = soup.find_all('a')rank_link_pre = 'http://www.ittf.com/ittf_ranking/'mlfile = open(linkfile,'a')for atag in atags: #print atag if atag!=None and atag.get('href') != None: if "WR_Table_3_A2_Details.asp" in atag['href']: link = rank_link_pre + atag['href'] links.append(link) mlfile.write(link+'\n') print 'fetch link: '+linkmlfile.close()