用Python程式抓取網頁的HTML資訊的一個小執行個體

來源:互聯網
上載者:User
抓取網頁資料的思路有好多種,一般有:直接代碼請求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()
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.