有時候因為某些需求需要爬取某個網頁中某個表格里的數據,這時候如果這個頁面只有這一個表格的時候,那么抓取就比較容易了,但是當這個頁面中有大量的表格的時候,再使用之前的方法,就會發現雖然也能抓取到要的數據,但是還有一大堆冗余。
這時候,就可以使用下面這種方法
就以這個網頁里的表格為例
#coding:utf-8 import re import urllib2 url='http://58921.com/' header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36'} request=urllib2.Request(url,headers=header) page_code=urllib2.urlopen(request).read() # 從網頁源碼中找到你要抓取表格的下列信息 # 表格開頭 start_code='<table class="table table table-bordered table-condensed">' # 表格結尾 end_code='</tbody>' # 表格中要抓取的數據 find_code='<td><a href=".*?" title=".*?">(.*?)</a></td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td>' # 這里通過 start和end指定在整個頁面中你所尋找的表格 start=page_code.find(start_code) end=page_code.find(end_code) find=page_code[start:end] final_find=re.findall(find_code,find) for x in final_find: print ','.join(x) print 'finish'