




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python爬蟲(chóng)快速入門中南高校商學(xué)院鄧旭東自我介紹2009-2013哈爾濱工業(yè)高校經(jīng)濟(jì)管理學(xué)院2015-至今中南高校商學(xué)院主要探討方向?yàn)榫€上社群及消費(fèi)者行為,在學(xué)習(xí)探討過(guò)程中,習(xí)得了數(shù)據(jù)科學(xué)相關(guān)技術(shù),如數(shù)據(jù)采集、數(shù)據(jù)清理、數(shù)據(jù)規(guī)整、統(tǒng)計(jì)分析熟悉R、python、MongoDB。書目二、準(zhǔn)備學(xué)問(wèn)一、引言三、網(wǎng)頁(yè)懇求四、網(wǎng)頁(yè)解析五、起先采集六、如何應(yīng)對(duì)反爬七、高級(jí)爬蟲(chóng)爬蟲(chóng)工作原理HTML+CSSPython基本學(xué)問(wèn)找規(guī)律構(gòu)建urlrequests庫(kù)如何解析網(wǎng)頁(yè)BeautifulSoupre庫(kù)的運(yùn)用條件、循環(huán)語(yǔ)句try。。。Except異樣處理。數(shù)據(jù)存儲(chǔ)限制訪問(wèn)頻率偽裝裝成閱讀器運(yùn)用代理IPselenium+Firefox(36版)抓包應(yīng)對(duì)動(dòng)態(tài)網(wǎng)頁(yè)引言爬蟲(chóng)能做什么?
微博最近有啥熱門話題淘寶京東上某商品價(jià)格變動(dòng)郵箱通知女/男神最新動(dòng)態(tài)誰(shuí)點(diǎn)贊最活躍BBS搶沙發(fā)社交網(wǎng)絡(luò)分析….
引言爬蟲(chóng)能做什么一句話,只要閱讀器有的,你都可以抓可以爬引言爬蟲(chóng)好學(xué)嗎?>>>from
math
import
pow>>>YouJoinUs
=
{‘is’:True}>>>If
YouJoinUs[‘is’]:>>>
result
=
pow(1.01,365)>>>
print(result)37.7834簡(jiǎn)潔的道理書目一、引言三、網(wǎng)頁(yè)懇求四、網(wǎng)頁(yè)解析五、起先采集六、如何應(yīng)對(duì)反爬七、高級(jí)爬蟲(chóng)爬蟲(chóng)工作原理HTMLPython基本學(xué)問(wèn)找規(guī)律構(gòu)建urlrequests庫(kù)如何解析網(wǎng)頁(yè)BeautifulSoupre庫(kù)的運(yùn)用條件、循環(huán)語(yǔ)句try。。。Except異樣處理。數(shù)據(jù)存儲(chǔ)限制訪問(wèn)頻率偽裝裝成閱讀器運(yùn)用代理IPselenium+Firefox(36版)抓包應(yīng)對(duì)動(dòng)態(tài)網(wǎng)頁(yè)二、準(zhǔn)備學(xué)問(wèn)爬蟲(chóng)工作原理藍(lán)色線條:發(fā)起懇求(request)紅色線條:返回響應(yīng)(response)HTML標(biāo)簽訪問(wèn)Python中文社區(qū)s://zhuanlan.zhihu/zimei返回HTML文件如下:閱讀器顯示效果Python基本學(xué)問(wèn)
基本數(shù)據(jù)類型(str,list,tuple,set,dict)循環(huán)語(yǔ)句(for循環(huán))條件語(yǔ)句(if
else
while)表達(dá)式(如age
=
20)字符串str字符串:?jiǎn)危p、三)引號(hào)及其夾住的字符>>>String
=
‘我叫鄧旭東’>>>String[2:5]鄧旭東列表list[1,
2,
3,
4,
5][‘1’,
’2’,
’3’,
’4’,
’5’][‘a(chǎn)’,
’b’,
’c’,
’d’][(1,2),(1,2)]…列表中的元素可以是字符串,數(shù)字,元組,字典,集合下面的寫法是不對(duì)的[a,
b,
c]
(除非a,b,c是變量)元組tuple(1,2,3,4)(’1’,
‘2’,
‘3’,
‘4’)
(‘a(chǎn)’,
’b’,
’c’,
’d’)集合set{‘a(chǎn)’,
’b’,
’c’}集合是不重復(fù)的元素組成的一個(gè)基本數(shù)據(jù)類型。字典dict>>>Dict
=
{‘name’:
‘鄧旭東’,
‘a(chǎn)ge’:
26,
‘gender’:
‘male’}在大括號(hào)中,數(shù)據(jù)成對(duì)存儲(chǔ),冒號(hào)左邊是鍵(key),冒號(hào)右邊是值(value)>>>Dict[‘a(chǎn)ge’]26for循環(huán)>>>for
x
in
[‘1’,
’2’,
’3’]:>>>
print(x)123書目一、引言三、網(wǎng)頁(yè)懇求四、網(wǎng)頁(yè)解析五、起先采集六、如何應(yīng)對(duì)反爬七、高級(jí)爬蟲(chóng)爬蟲(chóng)工作原理HTMLPython基本學(xué)問(wèn)找規(guī)律構(gòu)建urlrequests庫(kù)如何解析網(wǎng)頁(yè)BeautifulSoupre庫(kù)的運(yùn)用條件、循環(huán)語(yǔ)句try。。。Except異樣處理。數(shù)據(jù)存儲(chǔ)限制訪問(wèn)頻率偽裝裝成閱讀器運(yùn)用代理IPselenium+Firefox(36版)抓包應(yīng)對(duì)動(dòng)態(tài)網(wǎng)頁(yè)二、準(zhǔn)備學(xué)問(wèn)找規(guī)律構(gòu)建url通過(guò)點(diǎn)擊翻看同一個(gè)書目下的多個(gè)頁(yè)面,發(fā)覺(jué)規(guī)律,定制url發(fā)覺(jué)規(guī)律定制url發(fā)覺(jué)規(guī)律定制url這里的url規(guī)律是頁(yè)碼數(shù)減1后乘以20構(gòu)建網(wǎng)址Base_url=‘s://movie.douban/tag?start={num}’forpageinrange(1,94,1):Num=1url=Base_url.format(num=Num*20)print(url)‘s://movie.douban/tag?start=0’‘s://movie.douban/tag?start=20’‘s://movie.douban/tag?start=40’……requests庫(kù)
RequestsisanelegantandsimpleHTTPlibraryforPython,builtforhumanbeings.Requests是一個(gè)優(yōu)雅簡(jiǎn)潔的PythonHTTP庫(kù),給人類運(yùn)用。requests常用方法最一般的訪問(wèn)url=‘://jianshu/u/1562c7f164’r=requests.get(url)偽裝成閱讀器的訪問(wèn)Headers={‘User-Agent’:’Mozilla/5.0(Macintosh;IntelMacOSX10_12_3)AppleWebKit/537.36(KHTML,likeGecko)Chrome/56.0.2924.87Safari/537.36’}r=requests.get(url,headers=Headers)requests常用方法運(yùn)用cookie訪問(wèn)Cookie={‘Cookie’:’UM_distinctid=15ab64ecfd6592-0afad5b368bd69-1d3b6853-13c680-15ab64ecfd7b6;remember_user_token=W1sxMjEzMTM3XSwiJDJhJDEwJHhjYklYOGl2eTQ0Yi54WC5seVh2UWUiLCIxNDg5ODI2OTgwLjg4ODQyODciXQ%3D%3Dac835770a030c0595b2993289e39c37d82ea27e2;CNZZDATA1258679142=559069578-1488626597-s%253A%252F%252Fbaidu%252F%7C1489923851’}r=requests.get(url,cookies=cookies)requests常用方法>>>r.textu‘[{“repository”:{“open_issues”:0,“url”:“s://github/...#返回懇求的狀態(tài)>>>r.status_code#(4開(kāi)頭客戶端問(wèn)題,5開(kāi)頭服務(wù)器問(wèn)題)200
書目一、引言三、網(wǎng)頁(yè)懇求四、網(wǎng)頁(yè)解析五、起先采集六、如何應(yīng)對(duì)反爬七、高級(jí)爬蟲(chóng)爬蟲(chóng)工作原理HTMLPython基本學(xué)問(wèn)找規(guī)律構(gòu)建urlrequests庫(kù)如何解析網(wǎng)頁(yè)BeautifulSoupre庫(kù)的運(yùn)用條件、循環(huán)語(yǔ)句try。。。Except異樣處理。數(shù)據(jù)存儲(chǔ)限制訪問(wèn)頻率偽裝裝成閱讀器運(yùn)用代理IPselenium+Firefox(36版)抓包應(yīng)對(duì)動(dòng)態(tài)網(wǎng)頁(yè)二、準(zhǔn)備學(xué)問(wèn)如何解析網(wǎng)頁(yè)火狐Firebug/谷歌的開(kāi)發(fā)者工具BeaufifulSoup/re庫(kù)Python基本學(xué)問(wèn)BeautifulSoup>>>bsObj
=
BeautifulSoup(html,“html.parser”)格式化輸出
bsObj對(duì)象的內(nèi)容
4567891011html="""<html><head><title>TheDormouse'sstory</title></head><body><pclass="title"name="dromouse"><b>TheDormouse'sstory</b></p><pclass="story">Onceuponatimetherewerethreelittlesisters;andtheirnameswere<ahref="/elsie"class="sister"id="link1"><!--Elsie--></a>,<ahref="/lacie"class="sister"id="link2">Lacie</a>and<ahref="/tillie"class="sister"id="link3">Tillie</a>;andtheylivedatthebottomofawell.</p><pclass="story">...</p>"""兩種主要的對(duì)象:
Tag、NavigableStringtag對(duì)象>>>bsObj.title‘<title>TheDormouse‘sstory</title>’>>>bsObj.head‘<head><title>TheDormouse‘sstory</title></head>’>>>bsObj.a‘<aclass="sister"href="://example/elsie"id="link1"><!--Elsie--></a>’留意:它查找的是在全部?jī)?nèi)容中的第一個(gè)符合要求的標(biāo)簽,假如要查詢?nèi)康臉?biāo)簽,這種方法不奏效BeautifulSoup
–遍歷文檔樹(shù)>>>#干脆子節(jié)點(diǎn).contents>>>bsObj.head.contents
#輸出的為列表[‘<title>TheDormouse‘sstory</title>’]>>>bsObj.head.contents[0]從列表中取出子節(jié)點(diǎn)‘<title>TheDormouse'sstory</title>’BeautifulSoup
–遍歷文檔樹(shù)>>>#干脆子節(jié)點(diǎn).children>>>bsObj.head.children#返回生成器,可以迭代取出來(lái)<listiteratorobjectat0x7f71457f5710>>>>forchildinsoup.body.children:>>>printchild‘<pclass=“title”name=“dromouse”><b>TheDormouse‘sstory</b></p>’‘<pclass=“story”>Onceuponatimetherewerethreelittlesisters;andtheirnameswere’‘<aclass=“sister”href=“://example/elsie”id=“l(fā)ink1”><!--Elsie--></a>’‘<aclass=“sister”href=“://example/lacie”id=“l(fā)ink2”>Lacie</a>and’‘<aclass=“sister”href=“://example/tillie”id=“l(fā)ink3”>Tillie</a>’‘a(chǎn)ndtheylivedatthebottomofawell.</p><pclass="story">...</p>’Tag對(duì)象>>>#Attrs
<pclass="title"name="dromouse"><b>TheDormouse'sstory</b></p>>>>bsObj.p.attrs
{‘class’:‘title’,‘name’:‘dromouse’}>>>bsObj.p.attrs
[‘class’]‘title’>>>bsObi.p.attrs.get(‘class’)'title’NavigableString對(duì)象>>>#獲得標(biāo)簽內(nèi)部的文字>>>bsObj.p.stringTheDormouse'sstoryfind
/find_allfind_all(name,attrs)
得到的全部符合條件的結(jié)果,返回的是列表格式>>>bsObj.findall(‘a(chǎn)’)[<aclass=“sister”href=“://example/elsie”id=“l(fā)ink1”><!--Elsie--></a>,<aclass=“sister”href=“://example/lacie”id=“l(fā)ink2”>Lacie</a>,<aclass=“sister”href=“://example/tillie”id=“l(fā)ink3”>Tillie</a>]>>>bsObj.findall(‘a(chǎn)’,{‘href’:‘://example/elsie’})[‘<aclass=“sister”href=“://example/elsie”id=“l(fā)ink1”><!--Elsie--></a>’]find(name,attrs)
只返回第一個(gè)符合條件的結(jié)果,所以soup.find()后面可以干脆接.text或者get_text()來(lái)獲得標(biāo)簽中的文本。>>>bsObj.findall(‘a(chǎn)’)<aclass=“sister”href=“://example/elsie”id=“l(fā)ink1”><!--Elsie--></a>re庫(kù)-正則表達(dá)式html=‘<html><div><span>我叫鄧旭東</span><span>今年27歲</span></div></html>’BeautifulSoup獲得html文件中的鄧旭東和27,須要這樣>>>bsObj=BeautifulSoup(html,’html.parser’)>>>Contents=bsObj.findall(‘span’)>>>Contents[0]<span>我叫鄧旭東</span>>>>Contents[0].string我叫鄧旭東>>>Contents[0].string[2:]鄧旭東>>>Contents[1]<span>今年27歲</span>>>>Contents[1].string今年27歲>>>Contents[1].string[2:-2]27re庫(kù)-正則表達(dá)式在爬蟲(chóng)的應(yīng)用html=‘<html><div><span>我叫鄧旭東</span><span>今年27歲</span></div></html>’>>>Importre>>>pattern=repile(r’<span>我叫(.*?)</span><span>今年(.*?)歲</span>’)>>>result=re.findall(pattern,html)>>>result(‘鄧旭東’,’27’)re正則表達(dá)式常用匹配規(guī)則.匹配隨意字符(“\n”除外)a.cabc\d數(shù)字0-9a\dca1c*匹配前一個(gè)字符的0或無(wú)限次ab*cac或abc或abbc+匹配前一個(gè)字符的1或無(wú)限次ab+cabc或abbc?匹配前一個(gè)字符0或1次abc?ab或abcre庫(kù)方法pattern=repile(string)
#以下為匹配所用函數(shù)re.findall(pattern,string)返回列表re.match(pattern,string)從string的開(kāi)頭匹配,匹配成功立刻返回pattern的內(nèi)容,不再匹配string剩余部分re.search(pattern,string)從string全部匹配,假如匹配不成功返回none,匹配成功返回一個(gè)或多個(gè)匹配內(nèi)容re.split(pattern,string)re.sub(pattern,repl,string)書目一、引言三、網(wǎng)頁(yè)懇求四、網(wǎng)頁(yè)解析五、起先采集六、如何應(yīng)對(duì)反爬七、高級(jí)爬蟲(chóng)爬蟲(chóng)工作原理HTMLPython基本學(xué)問(wèn)找規(guī)律構(gòu)建urlrequests庫(kù)如何解析網(wǎng)頁(yè)BeautifulSoupre庫(kù)的運(yùn)用條件、循環(huán)語(yǔ)句try。。。Except異樣處理數(shù)據(jù)存儲(chǔ)限制訪問(wèn)頻率偽裝裝成閱讀器運(yùn)用代理IPselenium+Firefox(36版)抓包應(yīng)對(duì)動(dòng)態(tài)網(wǎng)頁(yè)二、準(zhǔn)備學(xué)問(wèn)for語(yǔ)句用來(lái)循環(huán),重復(fù)爬蟲(chóng)動(dòng)作1、遍歷網(wǎng)址,依次對(duì)網(wǎng)址發(fā)送懇求2、解析網(wǎng)頁(yè)時(shí),返回的是列表或生成器的對(duì)象,通過(guò)for遍歷對(duì)象中的元素并對(duì)每個(gè)元素進(jìn)行操作if條件推斷語(yǔ)句用來(lái)解決爬蟲(chóng)過(guò)程中哪些要,哪些不要的問(wèn)題哪些執(zhí)行,哪些不執(zhí)行的問(wèn)題try。。。Except異樣處理。情景:你設(shè)計(jì)的程序在完備狀況下當(dāng)然不會(huì)出錯(cuò),但現(xiàn)實(shí)是常常有意外出現(xiàn),一遇到問(wèn)題就程序就退出運(yùn)行。解決方法:tryexcept異樣處理,增加你爬蟲(chóng)的健壯性,解決遇到問(wèn)題程序停止數(shù)據(jù)存儲(chǔ)初級(jí)的爬蟲(chóng),大多都是為了獲得文本數(shù)據(jù),只須要用csv、txt文件存儲(chǔ)即可>>>importcsv>>>csvFile=open(‘/apple/usr/python/data.csv’,’a+’,newline=‘’,encoding=‘utf-8’)>>>writer=csv.writer(csvFile)>>>writer.writerow((‘colum1’,’colum2’,’colum3’))…>>>writer.writerow((colum1,colum2,colum3))…>>>csvFile.close()數(shù)據(jù)存儲(chǔ)>>>f=open(‘/apple/usr/python/data.txt’,’a+’,encoding=‘utf-8’)>>>f.write(‘sssss’)…>>>f.close也可以運(yùn)用:>>>withopen((‘/apple/usr/python/data.txt’,’a+’,encoding=‘utf-8’)asf:>>>f.write(‘sssss’)起先采集數(shù)據(jù)書目一、引言三、網(wǎng)頁(yè)懇求四、網(wǎng)頁(yè)解析五、起先采集六、如何應(yīng)對(duì)反爬七、高級(jí)爬蟲(chóng)爬蟲(chóng)工作原理HTMLPython基本學(xué)問(wèn)找規(guī)律構(gòu)建urlrequests庫(kù)如何解析網(wǎng)頁(yè)BeautifulSoupre庫(kù)的運(yùn)用條件、循環(huán)語(yǔ)句try。。。Except異樣處理數(shù)據(jù)存儲(chǔ)限制訪問(wèn)頻率偽裝裝成閱讀器運(yùn)用代理IPselenium+Firefox(36版)抓包應(yīng)對(duì)動(dòng)態(tài)網(wǎng)頁(yè)二、準(zhǔn)備學(xué)問(wèn)如何應(yīng)對(duì)反爬偽裝成閱讀器限制訪問(wèn)頻率
運(yùn)用代理IP書目一、引言三、網(wǎng)頁(yè)懇求四、網(wǎng)頁(yè)解析五、起先采集六、如何應(yīng)對(duì)反爬七、高級(jí)爬蟲(chóng)爬蟲(chóng)工作原理HTMLPython基本學(xué)問(wèn)找規(guī)律構(gòu)建urlrequests庫(kù)如何解析網(wǎng)頁(yè)BeautifulSoupre庫(kù)的運(yùn)用條件、循環(huán)語(yǔ)句try。。。Except異樣處理數(shù)據(jù)存儲(chǔ)限制訪問(wèn)頻率偽裝裝成閱讀器
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 書出銷合同范本
- 加盟合同協(xié)議書范本
- 實(shí)驗(yàn)活動(dòng)7 粗鹽中難溶性雜質(zhì)的去除2024-2025學(xué)年新教材九年級(jí)下冊(cè)化學(xué)同步教學(xué)設(shè)計(jì)(人教版2024)
- 鄉(xiāng)村回收土地合同范例
- 名表買賣合同范例
- 全國(guó)閩教版初中信息技術(shù)七年級(jí)上冊(cè)第二單元第5課《電子表格數(shù)據(jù)的統(tǒng)計(jì)》教學(xué)設(shè)計(jì)
- 賣房合同范例200字
- 凍庫(kù)采購(gòu)合同范例寫
- 倉(cāng)儲(chǔ)分揀合同范例
- 修建排水溝合同范例
- 國(guó)際市場(chǎng)營(yíng)銷(第三版)-教學(xué)課件
- 公司安全生產(chǎn)“一會(huì)三卡”管理規(guī)定
- 建筑地基處理技術(shù)規(guī)范JGJ79-2012
- 山地回憶-完整版獲獎(jiǎng)?wù)n件
- 吸煙有害健康-完整版PPT
- 《結(jié)構(gòu)力學(xué)(2)》課程教學(xué)大綱(本科)
- 《中華傳統(tǒng)文化》第1課-炎黃始-華夏悠遠(yuǎn)教學(xué)課件
- 國(guó)家體育館QC成果之提高鋼結(jié)構(gòu)現(xiàn)場(chǎng)焊縫的一次合格率
- 隊(duì)列訓(xùn)練教程ppt課件(PPT 86頁(yè))
- 《麻精藥品培訓(xùn)》ppt課件
- JMP操作簡(jiǎn)要培訓(xùn)
評(píng)論
0/150
提交評(píng)論