zoukankan      html  css  js  c++  java
  • python3 requests模块

    # coding:gbk
    import requests
    
    response = requests.get('http://www.sina.com.cn/')
    print(response)
    print(response.status_code)  # 200正常,404找不到网页,503等5开头的是人家网站内部错误
    print(response.content)

    补充:这个模块需要安装下,可以在pycharm中的Terminal里执行:pip install requests,然后File/Settings/Project Interpreter/ 添加模块

    爬虫实例

    import re
    import requests
    from multiprocessing import Pool
    
    def get_page(url, pattern):
        response = requests.get(url)
        if response.status_code == 200:
            return (response.text, pattern)
    
    def parse_page(info):
        page_content, pattern = info
        res = re.findall(pattern, page_content)
        for item in res:
            dic = {
                'index': item[0],
                'title': item[1],
                'actor': item[2].strip()[3:],
                'time': item[3][5:],
                'score': item[4]+item[5]
    
            }
            print(dic)
    if __name__ == '__main__':
        pattern1 = re.compile(r'<dd>.*?board-index.*?>(d+)<.*?title="(.*?)".*?star.*?>(.*?)<.*?releasetime.*?>(.*?)'
                            r'<.*?integer.*?>(.*?)<.*?fraction.*?>(.*?)<', re.S)
    
        url_dic = {
            'http://maoyan.com/board/7': pattern1,
        }
    
        p = Pool()
        for url, pattern in url_dic.items():
            res = p.apply_async(get_page, args=(url, pattern), callback=parse_page)
    
        p.close()
        p.join()
    
    
    # {'index': '1', 'time': '2019-05-16', 'title': '海蒂和爷爷', 'actor': '阿努克·斯特芬,布鲁诺·甘茨,昆林·艾格匹', 'score': '9.5'}
    # {'index': '2', 'time': '2019-05-31', 'title': '尺八·一声一世', 'actor': '佐藤康夫,小凑昭尚,蔡鸿文', 'score': '9.4'}
    # {'index': '3', 'time': '2019-06-05', 'title': '无所不能', 'actor': '赫里尼克·罗斯汉,亚米·高塔姆,洛尼特·罗伊', 'score': '9.3'}
    # {'index': '4', 'time': '2019-04-29', 'title': '何以为家', 'actor': '赞恩·阿尔·拉菲亚,约丹诺斯·希费罗,博鲁瓦蒂夫·特雷杰·班科尔', 'score': '9.3'}
    # {'index': '5', 'time': '2019-05-17', 'title': '一条狗的使命2', 'actor': '丹尼斯·奎德,凯瑟琳·普雷斯科特,刘宪华', 'score': '9.2'}
    # {'index': '6', 'time': '2019-05-10', 'title': '一个母亲的复仇', 'actor': '希里黛玉,阿克夏耶·坎纳,萨佳·阿里', 'score': '9.2'}
    # {'index': '7', 'time': '2019-05-24', 'title': '龙珠超:布罗利', 'actor': '野泽雅子,堀川亮,中尾隆圣', 'score': '9.2'}
    # {'index': '8', 'time': '2019-05-01', 'title': '港珠澳大桥', 'actor': '2288;', 'score': '9.2'}
    # {'index': '9', 'time': '2019-05-17', 'title': '音乐家', 'actor': '胡军,袁泉,别里克·艾特占诺夫', 'score': '9.1'}
    # {'index': '10', 'time': '2019-05-24', 'title': '阿拉丁', 'actor': '梅纳·玛索德,娜奥米·斯科特,马尔万·肯扎里', 'score': '9.0'}
  • 相关阅读:
    数据仓库建设随笔(2)
    实战剖析三层架构2:实例代码
    数据仓库建设随笔(1)
    如何正确地死磕一个问题
    finally块中的代码一定会执行吗
    eclipse中任务进度的使用
    如何在单元测试编码实现类的访问器?这里给出一个答案
    SplitContainer.SplitterDistance属性值设置应注意的与FixedPanel有关
    再谈ReportingService报表中数据源类型为存储过程的数据集如何使用多值参数
    工作流加载及本地通信服务常见的异常
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/10987319.html
Copyright © 2011-2022 走看看