抓取虎嗅網

from lxml import etree
import requests
import json

root_huxiu_url='https://www.huxiu.com/'
post_url = 'https://www.huxiu.com/channel/ajaxGetMore'
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
'Cookie':'aliyungf_tc=AQAAAIokYwn+WwMAN9UmZQmaqDaXEhQv; huxiu_analyzer_wcy_id=4f1wsxk7txc42t0xk7w; Hm_lvt_324368ef52596457d064ca5db8c6618e=1516200027; Hm_lpvt_324368ef52596457d064ca5db8c6618e=1516200027; _ga=GA1.2.1212828852.1516200027; _gid=GA1.2.1755766605.1516200027; screen=%7B%22w%22%3A1366%2C%22h%22%3A768%2C%22d%22%3A1%7D; SERVERID=03a07aad3597ca2bb83bc3f5ca3decf7|1516199779|1516199738'
}

def get_channel_info(root_url):
    req=requests.get(root_url,headers=headers)
    html=req.text
    selector=etree.HTML(html)
    infos=selector.xpath('//ul[@class="header-column header-column1 header-column-zx menu-box"]/li/a')
    items=[]
    for info in infos:
        item_dict={}
        channel_name=info.xpath('text()')[0]
        catId=info.xpath('@href')[0].replace('/channel/','').replace('.html','')
        # print(channel_name,catId)
        item_dict['channel_name']=channel_name
        item_dict['catId']=catId
        items.append(item_dict)
    return items

def get_totalPage(catId):
    post_url = 'https://www.huxiu.com/channel/ajaxGetMore'
    post_data={#form data
        'huxiu_hash_code':'25ac5e645e763c56a512d97ab1901874',
        'page':1,
        'catId':catId
    }
    html=requests.post(post_url,data=post_data,headers=headers).text
    dict_data=json.loads(html)#json
    # print(dict_data)
    parse_data=dict_data['data']
    total_page=parse_data['total_page']

    return str(total_page)

def get_article_info(channel_name,catId,page):
    post_data={#form data
        'huxiu_hash_code':'25ac5e645e763c56a512d97ab1901874',
        'page':page,
        'catId':catId
    }
    html=requests.post(post_url,data=post_data,headers=headers).text
    dict_data=json.loads(html)#jason
    # print(dict_data)
    parse_data=dict_data['data']
    total_page=parse_data['total_page']
    data_html=parse_data['data'].strip()
    print(channel_name,catId,total_page,data_html[0:10])

    selector2=etree.HTML(data_html)
    articles_url=selector2.xpath('//a/@href')

    for a_url in articles_url[0::2]:#相鄰的2個url是一樣的
        if a_url.startswith('/article'):
            article_url=root_huxiu_url+a_url[1:]
            print(article_url)

            req3=requests.get(article_url,headers=headers)
            selector3=etree.HTML(req3.text)
            title=selector3.xpath('//div[@class="article-wrap"]/h1/text()')[0].strip()
            content=selector3.xpath('//p/text()')
            whole_content='\n'.join(content) #自動換行
            print(title)
            print(whole_content)

def main():
    channels_info=get_channel_info(root_huxiu_url)
    for one_channel in channels_info:
        print(one_channel)
        pages=get_totalPage(one_channel['catId'])
        print(one_channel['channel_name']+'pages:'+pages)
        for ipage in pages:
            get_article_info(one_channel['channel_name'],one_channel['catId'],ipage)

if __name__=='__main__':
    main()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380