Python基礎(chǔ)學(xué)習(xí)20

爬取靜態(tài)網(wǎng)頁案例:

from bs4 import BeautifulSoup
import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
}

url = 'http://news.baidu.com/'

# 取得新聞標(biāo)題
def craw2(url):
    response = requests.get(url, headers=headers)

    soup = BeautifulSoup(response.text, 'lxml')

    for title_href in soup.find_all('div'):
        print([title.get_text()
              for title in title_href.find_all('a')])

craw2(url)

上面案例可以得到網(wǎng)頁代碼中內(nèi)容隧土,即使不設(shè)置header頭也能獲取到嚣镜。
但是,相同代碼應(yīng)用于獲取動態(tài)網(wǎng)站就失效了剩瓶。
在動態(tài)頁面中,所顯示的內(nèi)容往往不是通過HTML頁面呈現(xiàn)的城丧,而是通過調(diào)用js等方式從數(shù)據(jù)庫中得到數(shù)據(jù)延曙,回顯到網(wǎng)頁上。
爬取動態(tài)網(wǎng)頁案例:
爬取https://www.infoq.cn/為案例亡哄,如果直接爬取網(wǎng)站HTML頁面是無法獲取想要的文章內(nèi)容搂鲫,可以在頁面右鍵顯示網(wǎng)頁源代碼看到想要的文章內(nèi)容并不在HTML中,所以可確定為動態(tài)網(wǎng)站磺平。
下面操作方法來源此文章

找到內(nèi)容對應(yīng)url

捕捉信息發(fā)現(xiàn)通過post請求獲取內(nèi)容

通過模擬客戶端發(fā)送post請求來爬取,首先需要找到post請求url:

import requests
from bs4 import BeautifulSoup

def test0():
    url="https://www.infoq.cn/public/v1/config/getAdList"
    headers = {
        'Accept':'*/*',
        'Accept-Encoding':'gzip, deflate, br',
        'Accept-Language':'zh-CN,zh;q=0.8',
        'Connection':'keep-alive',
        'Content-Length':'0',
        'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
        'Cookie':'這里的內(nèi)容用自己',
        'Host':'www.infoq.cn',
        'Origin':'https://www.infoq.cn',
        'Referer':'https://www.infoq.cn/public/v1/config/getAdList',
        'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',
        }

    re=requests.post(url,headers = headers,data={'start':0})
    print(re.text)

def test1():
    url="https://www.infoq.cn/public/v1/my/recommond"
    headers = {
        'Accept':'*/*',
        'Accept-Encoding':'gzip, deflate, br',
        'Accept-Language':'zh-CN,zh;q=0.8',
        'Connection':'keep-alive',
        'Content-Length':'11',
        'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
        'Cookie':'這里的內(nèi)容用自己',
        'Host':'www.infoq.cn',
        'Origin':'https://www.infoq.cn',
        'Referer':'https://www.infoq.cn/public/v1/my/recommond',
        'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',
        }
    re=requests.post(url,headers = headers,data={'start':33,'offset':33})
    print(re.text)

test0()
#獲取到的內(nèi)容
{'code': 0,
 'data':
     {'list':
          [{'name': 'QCon',
            'link': 'https://2019.qconbeijing.com/track?utm_source=infoq&utm_medium=banner&term=lusu',
            'image': 'https://static001.geekbang.org/resource/image/97/70/97c80c4d51d01cbebebcf397e5e63f70.png'},
           {'name': 'QCon廣州',
            'link': 'https://qconguangzhou.geekbang.org/?utm_source=infoq&utm_medium=banner',
            'image': 'https://static001.infoq.cn/resource/image/0a/60/0a7516e6e8ed699d14fcfaf412475960.jpg'},
           {'name': '西云數(shù)據(jù)',
            'link': 'https://www.bagevent.com/event/2356848?bag_track=Banner3',
            'image': 'https://static001.geekbang.org/resource/image/0c/fd/0c3a140ba910744136d9fe0e726945fd.jpg'},
           {'name': 'GMTC',
            'link': 'https://gmtc2019.geekbang.org/?utm_source=infoq&utm_medium=banner&utm_campaign=7',
            'image': 'https://static001.geekbang.org/resource/image/72/fa/726dfd8346cdf7a0de843b32df3ccbfa.jpg'},
           {'name': 'GTLC',
            'link': 'https://gtlc2019.geekbang.org/?utm_source=infoq&utm_medium=guanwang&utm_campaign=banner',
            'image': 'https://static001.geekbang.org/resource/image/b6/87/b6375457793da7b7b5fbc9eba8530a87.jpg'},
           {'name': '極客大學(xué)',
            'link': 'https://time.geekbang.org/special/arithmetic?utm_source=infoq_web&utm_medium=banner',
            'image': 'https://static001.geekbang.org/resource/image/53/dd/53c9dca735254ffa687984ffef0f93dd.jpg'},
           {'name': '企業(yè)賬號',
            'link': 'https://service.geekbang.org/goods/list?category=7&page=1#utm_source=website&utm_medium=infoq&utm_campaign=banner&utm_term=0221',
            'image': 'https://static001.infoq.cn/resource/image/37/a7/375a5847c1f0d397d2280f23e077c6a7.jpg'}],
      'offsets': 0},
 'error': {},
 'extra': {'cost': 0.001510902,
           'request-id': '396b8defe24e713f8610038737671eba@2@infoq'}}

test1()
#獲取到的內(nèi)容
{'code': 0,
 'data': [{'aid': 22233,
           'article_cover': 'https://static001.geekbang.org/resource/image/e4/71/e4a978422d6c045c7a541b78bbca1f71.jpeg',
           'article_cover_point': '{"big":{"point":{"x":0,"y":189,"w":2815,"h":1451}},"small":{"point":{"x":0,"y":0,"w":2816,"h":2091}},"width":2816,"height":2112}',
           'article_sharetitle': '北大AI公開課2019 | 商湯科技沈徽:AI創(chuàng)新與落地',
           'article_subtitle': '',
           'article_summary': '北大AI公開課第四講如期開講拐辽,商湯科技集團(tuán)副總裁拣挪、商業(yè)與數(shù)據(jù)洞察事業(yè)群總裁、工程院院長沈徽帶來了《AI創(chuàng)新與落地》的分享',
           'article_title': '北大AI公開課2019 | 商湯科技沈徽:AI創(chuàng)新與落地',
           'author':
               [{'uid': 1277332,
                 'nickname': '蔡芳芳',
                 'avatar': ''}],
           'ctime': 1552714233280,
           'is_collect': False,
           'no_author': '',
           'publish_time': 1552716000000,
           'score': 1552716000000,
           'sub_author': [],
           'sub_topic': [],
           'topic':
               [{'id': 31,
                 'name': 'AI'},
                {'id': 3,
                 'name': '文化 & 方法'},
                {'id': 127,
                 'name': '計(jì)算機(jī)視覺'}],
           'type': 1,
           'utime': 1552716005424,
           'uuid': 'GoNSrsxpC0AT6a3V-6NQ',
           'views': 0},
          {'aid': 22232,
           'article_cover': 'https://static001.geekbang.org/resource/image/ee/47/ee719a85e81ae073f79039ba9da3df47.jpg',
           'article_cover_point': '{"big":{"point":{"x":0,"y":309,"w":5184,"h":2672}},"small":{"point":{"x":506,"y":332,"w":4040,"h":3001}},"width":5184,"height":3456}',
           'article_sharetitle': '3·15曝光丨智能機(jī)器人一年撥打40億個(gè)騷擾電話俱诸,6億人信息已遭泄露菠劝!',
           'article_subtitle': '',
           'article_summary': '在昨晚的315晚會上,一條探針盒子+數(shù)據(jù)匹配+智能外呼機(jī)器人的灰色產(chǎn)業(yè)鏈遭到曝光睁搭。據(jù)報(bào)道赶诊,智能外呼機(jī)器人一年撥打電話可達(dá)40多億個(gè),探針盒子公司收集有全國6億用戶的各類信息园骆!',
           'article_title': '3·15曝光丨智能機(jī)器人一年撥打40億個(gè)騷擾電話舔痪,6億人信息已遭泄露!',
           'author':
               [{'uid': 1000106,
                 'nickname': '小智',
                 'avatar': 'https://static001.geekbang.org/account/avatar/00/0f/42/aa/b9a67c2e.jpg'}],
           'ctime': 1552698015145,
           'is_collect': False,
           'no_author': '',
           'publish_time': 1552698000000,
           'score': 1552698000000,
           'sub_author': [],
           'sub_topic': [],
           'topic': [{'id': 21,
                      'name': '安全'},
                     {'id': 15,
                      'name': '大數(shù)據(jù)'},
                     {'id': 148,
                      'name': '信息泄露'}],
           'type': 1,
           'utime': 1552698015145,
           'uuid': 'NgG*uSOwwI2OVhA80o0G',
           'views': 0},
          {'aid': 22230,
           'article_cover': 'https://static001.geekbang.org/resource/image/30/6f/3087f86b2cbe7b3222c3bb5d7557126f.jpg',
           'article_cover_point': '{"big":{"point":{"x":0,"y":0,"w":1279,"h":659}},"small":{"point":{"x":51,"y":0,"w":1148,"h":852}},"width":1280,"height":853}',
           'article_sharetitle': '這可能是人工智能領(lǐng)域覆蓋最全的一份技術(shù)趨勢報(bào)告',
           'article_subtitle': '',
           'article_summary': '這份報(bào)告對AI領(lǐng)域的技術(shù)預(yù)測可謂面面俱到锌唾,無論是對于AI企業(yè)锄码、研究者夺英,還是AI學(xué)習(xí)者來說都有一定參考價(jià)值',
           'article_title': '這可能是人工智能領(lǐng)域覆蓋最全的一份技術(shù)趨勢報(bào)告',
           'author': [{'uid': 1462160,
                       'nickname': '未來今日研究所',
                       'avatar': ''}],
           'ctime': 1552698005153,
           'is_collect': False,
           'no_author': '',
           'publish_time': 1552698000000,
           'score': 1552698000000,
           'sub_author': [],
           'sub_topic': [],
           'topic':
               [{'id': 31,
                 'name': 'AI'},
                {'id': 1,
                 'name': '語言 & 開發(fā)'},
                {'id': 45,
                 'name': '物聯(lián)網(wǎng)'}],
           'translator': [{'uid': 1282296,
                           'nickname': 'Debra',
                           'avatar': ''}],
           'type': 1,
           'utime': 1552698005153,
           'uuid': 'A315uodoMbWrNrZh*MzP',
           'views': 0},
          ......
          {'aid': 22225,
           'article_cover': 'https://static001.geekbang.org/resource/image/6f/a2/6f3b4ff25e9e2e926e8e2bd4436f96a2.jpg',
           'article_cover_point': '{"big":{"point":{"x":0,"y":10,"w":1000,"h":515}},"small":{"point":{"x":136,"y":12,"w":761,"h":565}},"width":1000,"height":600}',
           'article_sharetitle': 'Google 和 Facebook 披露全球范圍宕機(jī)原因',
           'article_subtitle': '',
           'article_summary': '昨日,Google滋捶、Facebook兩巨頭在同一天相繼發(fā)生全球大規(guī)模宕機(jī)痛悯,其中Facebook的斷電時(shí)常更是超過10小時(shí)之久。',
           'article_title': 'Google 和 Facebook 披露全球范圍宕機(jī)原因',
           'author':
               [{'uid': 1278039,
                 'nickname': '張嬋',
                 'avatar': ''}],
           'ctime': 1552642208366,
           'is_collect': False,
           'no_author': '',
           'publish_time': 1552642207254,
           'score': 1552642207254,
           'sub_author': [],
           'sub_topic': [],
           'topic':
               [{'id': 3,
                 'name': '文化 & 方法'},
                {'id': 147,
                 'name': '企業(yè)動態(tài)'},
                {'id': 48,
                 'name': '方法論'}],
           'type': 1,
           'utime': 1552642208366,
           'uuid': 'e-NCah5RTmJMrvmrmbCU',
           'views': 0}],
 'error': {},
 'extra':
     {'cost': 0.028648169,
      'request-id': '1ceebf53fd24003586f1272cc881b7fd@2@infoq'}}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末重窟,一起剝皮案震驚了整個(gè)濱河市载萌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巡扇,老刑警劉巖扭仁,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異霎迫,居然都是意外死亡斋枢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門知给,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓤帚,“玉大人,你說我怎么就攤上這事涩赢「甏危” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵筒扒,是天一觀的道長怯邪。 經(jīng)常有香客問我,道長花墩,這世上最難降的妖魔是什么悬秉? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮冰蘑,結(jié)果婚禮上和泌,老公的妹妹穿的比我還像新娘。我一直安慰自己祠肥,他們只是感情好武氓,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仇箱,像睡著了一般县恕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剂桥,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天忠烛,我揣著相機(jī)與錄音,去河邊找鬼权逗。 笑死况木,一個(gè)胖子當(dāng)著我的面吹牛垒拢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播火惊,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼求类,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了屹耐?” 一聲冷哼從身側(cè)響起尸疆,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惶岭,沒想到半個(gè)月后寿弱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡按灶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年症革,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸯旁。...
    茶點(diǎn)故事閱讀 40,144評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡噪矛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出铺罢,到底是詐尸還是另有隱情艇挨,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布韭赘,位于F島的核電站缩滨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏泉瞻。R本人自食惡果不足惜脉漏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望袖牙。 院中可真熱鬧侧巨,春花似錦、人聲如沸贼陶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碉怔。三九已至,卻和暖如春禁添,著一層夾襖步出監(jiān)牢的瞬間撮胧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工老翘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芹啥,地道東北人锻离。 一個(gè)月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像墓怀,于是被迫代替她去往敵國和親汽纠。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評論 2 355

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

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5傀履? 答:HTML5是最新的HTML標(biāo)準(zhǔn)虱朵。 注意:講述HT...
    kismetajun閱讀 27,490評論 1 45
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評論 1 92
  • HTTP基本原理 URI钓账、URL碴犬、URN(Uninform Resource) URI(Identifier):統(tǒng)...
    GHope閱讀 2,083評論 2 26
  • 聲明:本文講解的實(shí)戰(zhàn)內(nèi)容,均僅用于學(xué)習(xí)交流梆暮,請勿用于任何商業(yè)用途服协! 一、前言 強(qiáng)烈建議:請?jiān)陔娔X的陪同下啦粹,閱讀本文...
    Bruce_Szh閱讀 12,708評論 6 28
  • 今天給你分享一個(gè)故事偿荷,通過這個(gè)故事的分析你可以訓(xùn)練一下你的發(fā)散性思維。 在王安石20歲的時(shí)候進(jìn)京趕考卖陵,正好趕上了元...
    單卓玉閱讀 1,232評論 0 3