《web scraping with python》讀書筆記2

第四章:API

  • API的說明
  • API的幾個例子
  • JSON格式在python中的解析
    很簡單斟冕,JSON同一級的轉(zhuǎn)化為list台汇,每個JSON對象轉(zhuǎn)化為dic萍诱。
import json
jsonString = '{"arrayOfNums":[{"number":0},{"number":1},{"number":2}],
"arrayOfFruits":[{"fruit":"apple"},{"fruit":"banana"},
{"fruit":"pear"}]}'
jsonObj = json.loads(jsonString)
print(jsonObj.get("arrayOfNums"))
print(jsonObj.get("arrayOfNums")[1])
print(jsonObj.get("arrayOfNums")[1].get("number")+
jsonObj.get("arrayOfNums")[2].get("number"))
print(jsonObj.get("arrayOfFruits")[2].get("fruit"))

結(jié)果:

[{'number': 0}, {'number': 1}, {'number': 2}]
{'number': 1}
3
pear

數(shù)據(jù)存儲

數(shù)據(jù)庫、文件谁撼、Email

  • 存儲鏈接的優(yōu)缺點
    優(yōu)點:快、占用空間小滋饲、容易編寫代碼厉碟、

  • 使用urllib.request中的urlretrieve函數(shù)下載資源

  • 保存數(shù)據(jù)到CSV

import csv
csvFile = open("../files/test.csv", 'w+')
try:
    writer = csv.writer(csvFile)
    writer.writerow(('number', 'number plus 2', 'number times 2'))
    for i in range(10):
        writer.writerow( (i, i+2, i*2))
finally:
    csvFile.close()

結(jié)果:

number,number plus 2,number times 2
0,2,0
1,3,2
2,4,4
...
  • 介紹數(shù)據(jù)庫

  • 用Email發(fā)送信息

讀取文件

清洗臟數(shù)據(jù)

自然語言處理

表格和登陸

我們要用到requests這個庫

  • 提交一個簡單的表格
    首先看到表格頁面
    記住它們各種的名字

填寫頁面和真正處理的頁面不一定是同一個頁面

def SubForm():
    params = {'firstname': 'yuecheng', 'lastname': 'li'}
    r = requests.post("http://pythonscraping.com/files/processing.php", data=params)
    print(r.text)

輸出:

Hello there, yuecheng li!

某個注冊頁面的表格:

<form action="http://post.oreilly.com/client/o/oreilly/forms/
quicksignup.cgi" id="example_form2" method="POST">
<input name="client_token" type="hidden" value="oreilly" />
<input name="subscribe" type="hidden" value="optin" />
<input name="success_url" type="hidden" value="http://oreilly.com/store/
newsletter-thankyou.html" />
<input name="error_url" type="hidden" value="http://oreilly.com/store/
newsletter-signup-error.html" />
<input name="topic_or_dod" type="hidden" value="1" />
<input name="source" type="hidden" value="orm-home-t1-dotd" />
<fieldset>
<input class="email_address long" maxlength="200" name=
"email_addr" size="25" type="text" value=
"Enter your email here" />
<button alt="Join" class="skinny" name="submit" onclick=
"return addClickTracking('orm','ebook','rightrail','dod'
);" value="submit">Join</button>
</fieldset>
</form>

看起來好像很嚇人,但是你只要抓住兩點:
1.記住對應的名字
2.表格填充的數(shù)據(jù)真正被提交到哪里去

  • 其他組件的數(shù)據(jù)提交
    同上或者用瀏覽器模擬然后觀察發(fā)送的數(shù)據(jù)

  • 上傳文件

  • 保持登陸和cookie

import requests
params = {'username': 'Ryan', 'password': 'password'}
r = requests.post("http://pythonscraping.com/pages/cookies/welcome.php", params)
print("Cookie is set to:")
print(r.cookies.get_dict())
print("-----------")
print("Going to profile page...")
r = requests.get("http://pythonscraping.com/pages/cookies/profile.php",
cookies=r.cookies)
print(r.text)

或者使用session

import requests
session = requests.Session()
params = {'username': 'username', 'password': 'password'}
s = session.post("http://pythonscraping.com/pages/cookies/welcome.php", params)
print("Cookie is set to:")
print(s.cookies.get_dict())
print("-----------")
print("Going to profile page...")
s = session.get("http://pythonscraping.com/pages/cookies/profile.php")
print(s.text)
  • HTTP Basic Access Authentication

  • 其他形式的表格問題
    看后續(xù)章節(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屠缭,一起剝皮案震驚了整個濱河市箍鼓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌呵曹,老刑警劉巖款咖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件何暮,死亡現(xiàn)場離奇詭異,居然都是意外死亡铐殃,警方通過查閱死者的電腦和手機海洼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來富腊,“玉大人坏逢,你說我怎么就攤上這事∽副唬” “怎么了词疼?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長帘腹。 經(jīng)常有香客問我贰盗,道長,這世上最難降的妖魔是什么阳欲? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任舵盈,我火速辦了婚禮,結(jié)果婚禮上球化,老公的妹妹穿的比我還像新娘。我一直安慰自己筒愚,他們只是感情好赴蝇,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著巢掺,像睡著了一般句伶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陆淀,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天考余,我揣著相機與錄音,去河邊找鬼轧苫。 笑死楚堤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的含懊。 我是一名探鬼主播身冬,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼岔乔!你這毒婦竟也來了酥筝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤重罪,失蹤者是張志新(化名)和其女友劉穎樱哼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體剿配,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡搅幅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了呼胚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茄唐。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蝇更,靈堂內(nèi)的尸體忽然破棺而出沪编,到底是詐尸還是另有隱情,我是刑警寧澤年扩,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布蚁廓,位于F島的核電站,受9級特大地震影響厨幻,放射性物質(zhì)發(fā)生泄漏相嵌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一况脆、第九天 我趴在偏房一處隱蔽的房頂上張望饭宾。 院中可真熱鬧,春花似錦格了、人聲如沸看铆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弹惦。三九已至,卻和暖如春悄但,著一層夾襖步出監(jiān)牢的瞬間肤频,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工算墨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宵荒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓净嘀,卻偏偏與公主長得像报咳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子挖藏,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容