python菜鸟 想做一个简单的爬虫 求教程 ps:一般公司做爬虫采集的话常用什么语言
认证0级讲师
str.find()
一般網頁以上兩點就可以了,對於ajax請求的網站,你可能爬不到想要內容,去找他的Api可能更方便。
以前學習的時候整理的一份教學:
Python 爬蟲教學
直接給題主貼一個可以使用的抓取腳本吧,目的是獲取豆瓣正在上映影片的豆瓣id和影片標題,腳本依賴於beautifulsoup庫,需要安裝,beautifulsoup中文文件
補充:如果題主是希望建立一個能對網站進行抓取或可以自訂抓取指定頁面這類真正的爬蟲程式的話,還是推薦題主研究 scrapy
抓取python範例程式碼:
#!/usr/bin/env python #coding:UTF-8 import urllib import urllib2 import traceback from bs4 import BeautifulSoup from lxml import etree as ET def fetchNowPlayingDouBanInfo(): doubaninfolist = [] try: #使用proxy时,请取消屏蔽 # proxy_handler = urllib2.ProxyHandler({"http" : '172.23.155.73:8080'}) # opener = urllib2.build_opener(proxy_handler) # urllib2.install_opener(opener) url = "http://movie.douban.com/nowplaying/beijing/" #设置http-useragent useragent = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36'} req = urllib2.Request(url, headers=useragent) page = urllib2.urlopen(req, timeout=10) html_doc = page.read() soup = BeautifulSoup(html_doc, "lxml") try: nowplaying_ul = soup.find("p", id="nowplaying").find("ul", class_="lists") lilist = nowplaying_ul.find_all("li", class_="list-item") for li in lilist: doubanid = li["id"] title = li["data-title"] doubaninfolist.append({"douban_id" : doubanid, "title" : title, "coverinfolist" : [] }) except TypeError, e: print('(%s)TypeError: %s.!' % (url, traceback.format_exc())) except Exception: print('(%s)generic exception: %s.' % (url, traceback.format_exc())) except urllib2.HTTPError, e: print('(%s)http request error code - %s.' % (url, e.code)) except urllib2.URLError, e: print('(%s)http request error reason - %s.' % (url, e.reason)) except Exception: print('(%s)http request generic exception: %s.' % (url, traceback.format_exc())) return doubaninfolist if __name__ =="__main__": doubaninfolist = fetchNowPlayingDouBanInfo() print doubaninfolist
簡單的,不用框架的,可以看看requests和beautifulsoup這兩個庫,如果熟悉python語法,看完這兩個,差不多能寫個簡單的爬蟲了。
一般公司會搞爬蟲,我看過的,多用java或python。
百度搜尋python + 爬蟲
簡單的爬蟲,其實框架最簡單了,看看網路上的入門貼 推薦scrapy
網終上確實有許多的關於Python如何寫一個簡單爬蟲的文章,但這些文章大多只能算是一個例子,能真正應用的還是挺少的。爬蟲我認為就是取得內容、分析內容、再儲存就OK了,如果只是才接觸的話,可以直接Google之就行了。如果是深入的研究的話,可以在Github上找找程式碼來看下。
我自己對於Python也只是一知半解,希望能有所幫助。
可以看看我的資料scrapy
scrapy 節約你大量時間github上有很多例子
貼一段爬天貓的代碼:
def areaFlow(self, parturl, tablename, date): while True: url = parturl + self.lzSession + '&days=' + str(date) + '..' + str(date) print url try: html = urllib2.urlopen(url, timeout=30) except Exception, ex: writelog(str(ex)) writelog(str(traceback.format_exc())) break; responegbk = html.read() try: respone = responegbk.encode('utf8') except Exception, ex: writelog(str(ex)) # 如果lzSession过期则会返回errcode:500的错误 if respone.find('"errcode":500') != -1: print 'nodata' break; # 如果时间不对则返回errcode:100的错误 elif respone.find('"errcode":100') != -1: print 'login error' self.catchLzsession() else: try: resstr = re.findall(r'(?<=\<)(.*?)(?=\/>)', respone, re.S) writelog('地域名称 浏览量 访问量') dictitems = [] for iarea in resstr: items = {} areaname = re.findall(r'(?<=name=\\")(.*?)(?=\\")', iarea, re.S) flowamount = re.findall(r'(?<=浏览量:)(.*?)(?=<)', iarea, re.S) visitoramount = re.findall(r'(?<=访客数:)(.*?)(?=\\")', iarea, re.S) print '%s %s %s' % (areaname[0], flowamount[0], visitoramount[0]) items['l_date'] = str(self.nowDate) items['vc_area_name'] = str(areaname[0]) items['i_flow_amount'] = str(flowamount[0].replace(',', '')) items['i_visitor_amount'] = str(visitoramount[0].replace(',', '')) items['l_catch_datetime'] = str(self.nowTime) dictitems.append(items) writeInfoLog(dictitems) insertSqlite(self.sqlite, tablename, dictitems) break except Exception,ex: writelog(str(ex)) writelog(str(traceback.format_exc())) time.sleep(1)
str.find()
都可以一般網頁以上兩點就可以了,對於ajax請求的網站,你可能爬不到想要內容,去找他的Api可能更方便。
以前學習的時候整理的一份教學:
Python 爬蟲教學
直接給題主貼一個可以使用的抓取腳本吧,目的是獲取豆瓣正在上映影片的豆瓣id和影片標題,腳本依賴於beautifulsoup庫,需要安裝,beautifulsoup中文文件
補充:如果題主是希望建立一個能對網站進行抓取或可以自訂抓取指定頁面這類真正的爬蟲程式的話,還是推薦題主研究 scrapy
抓取python範例程式碼:
簡單的,不用框架的,可以看看requests和beautifulsoup這兩個庫,如果熟悉python語法,看完這兩個,差不多能寫個簡單的爬蟲了。
一般公司會搞爬蟲,我看過的,多用java或python。
百度搜尋python + 爬蟲
簡單的爬蟲,其實框架最簡單了,看看網路上的入門貼
推薦scrapy
網終上確實有許多的關於Python如何寫一個簡單爬蟲的文章,但這些文章大多只能算是一個例子,能真正應用的還是挺少的。爬蟲我認為就是取得內容、分析內容、再儲存就OK了,如果只是才接觸的話,可以直接Google之就行了。如果是深入的研究的話,可以在Github上找找程式碼來看下。
我自己對於Python也只是一知半解,希望能有所幫助。
可以看看我的資料scrapy
scrapy 節約你大量時間
github上有很多例子
貼一段爬天貓的代碼: