爬取今日頭條


import requests, time, json
from urllib.parse import urlencode


# 獲取請求參數
def get_page(offset, search_name):
    params = {
        'aid': '24',
        'app_name': 'web_search',
        'offset': offset,
        'format': 'json',
        'keyword': search_name,
        'autoload': 'true',
        'count': '20',
        'cur_tab': "1",
        'en_qc': "1",
        'from': 'search_tab',
        'pd': 'synthesis',
        'timestamp': int(time.time())
    }
    url = "https://www.toutiao.com/api/search/content/?" + urlencode(params)
    headers = {
        "user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36",
        "cookie": "tt_webid=6818010969870059015; SLARDAR_WEB_ID=de0a6fa0-2353-4361-a091-f750c1d039b3; s_v_web_id=verify_k99dx1pd_hDVP0AHW_rkUL_4NpI_BR7H_CaUU49kDWHk1; WEATHER_CITY=%E5%8C%97%E4%BA%AC; tt_webid=6818010969870059015; csrftoken=e39f6a2faa3b2742b880f8939ab121b8; ttcid=3001d5b7eadf4314a152fb7c729be3cd13; __tasessionId=2ejuhcxwv1587452318019; tt_scid=cnsXgjICkjp-H2tEX2xRGjOHHlzEGHSM0xc-YgTdo.D-QsFU8aZ8YPHn0RcildVsfa8a"
    }
    res = requests.get(url, headers=headers)
    if res.status_code == 200:
        return json.loads(res.text)


# 解析網頁
def get_data(dic):
    data = dic.get('data')
    if data:
        for result in data:
            if result.get("title") and result.get("source_url"):
                # print(result["title"])
                # print(result['source_url'])
                yield {
                    "title": result["title"],
                    "source_url": result['source_url']
                }


# 主入口
def main(offset, search_name):
    json = get_page(offset, search_name)

    for item in get_data(json):
        print(item)


if __name__ == '__main__':
    for i in range(4):
        page = i * 20
        main(i, "疫情")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM