Python 爬虫 1. 当当TOP的爬取

# coding=utf-8
import requests
import re

def get_request(url):
    try:
        response=requests.get(url)
        if response.status_code == 200:
            return response.text
    except requests.RequestException:
        return None
#如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始。
#而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,在整体中进行匹配。
def parse_result(html):
    pattern=re.compile('
  • .*?list_num.*?(\d+).
  • .*?.*?class="star">.*?class="tuijian">(.*?).*?class="publisher_info">.*?target="_blank">(.*?).*?class="publisher_info">(.*?) .*?class="biaosheng">.*?(.*?)
    .*?

    ¥(.*?).*?', re.S) #pattern=re.compile('

  • .*?list_num.*?(\d+).
  • .*?*?star.*?target="_blank">(.*?)条评论.*?class="tuijian">(.*?).*?publisher_info.*?title="(.*?)".*?',re.S) items=re.findall(pattern,html) for item in items: yield { 'range': item[0], 'iamge': item[1], 'title': item[2], 'recommend': item[3], 'author': item[4], 'realse_times': item[5], 'times': item[6], 'price': item[7] } page_num=1 url=r'http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-recent30-0-0-1-'+str(page_num) html=get_request(url) items=parse_result(html) for item in items: print(item) #考虑方法放到pandas进一步操作

     

    1.re.compile()中用了re.S 

    :如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始。
    #而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,在整体中进行匹配。

    https://blog.csdn.net/weixin_42781180/article/details/81302806

     

    2.正则表达式的简单使用

    这里用的正则并不复杂,只是要对应好要选取的内容,简单来说  ()内是要选取的,(\d+)至少有一位数字,(.*?)不贪婪的匹配任意数量字符,观察结构用上可以区分的符号

     

    3.yidle的生成器

    https://www.runoob.com/w3cnote/python-yield-used-analysis.html

    当读取的内容过多,一个数组放不下,使用生成器会更好

     

    4.关于response.status_code == 200   和   response.text

    get请求拿到url的返回

    200是返回的表示正常的代码,类似不正常的有404等,response.text是返回的html网页

    最后的结果:

    {'range': '1', 'iamge': 'http://img3m0.ddimg.cn/33/33/25197810-1_l_3.jpg', 'title': '尤尔小屋的猫', 'recommend': '100%推荐', 'author': '莉莉・海沃德', 'realse_times': '2018-01-01', 'times': '56814次', 'price': '33.90'}
    {'range': '2', 'iamge': 'http://img3m5.ddimg.cn/1/26/24157585-1_l_9.jpg', 'title': '做个侃爷:精于闲聊 施展魅力(与任何人滔滔不绝的技巧)', 'recommend': '99.8%推荐', 'author': '帕特里克・金', 'realse_times': '2016-08-01', 'times': '41555次', 'price': '23.90'}
    {'range': '3', 'iamge': 'http://img3m3.ddimg.cn/94/21/25069963-1_l_16.jpg', 'title': '呐喊――大屠杀回忆录(二战犹太大屠杀幸存者自述――一部震撼人心的自传)', 'recommend': '100%推荐', 'author': '曼尼・斯坦伯格', 'realse_times': '2017-04-01', 'times': '37359次', 'price': '28.30'}
    {'range': '4', 'iamge': 'http://img3m0.ddimg.cn/10/28/25345990-1_l_3.jpg', 'title': '间谍之死(拒绝好莱坞翻拍的年度作品,刺激程度超越《碟中谍》,更好看的悬疑推理小说,,更精彩的高科技犯罪!屏住呼吸,追击即将开始) 纤阅出品', 'recommend': '100%推荐', 'author': '丹・马里兰', 'realse_times': '2018-08-01', 'times': '53980次', 'price': '42.50'}
    {'range': '5', 'iamge': 'http://img3m1.ddimg.cn/66/36/28470981-1_l_3.jpg', 'title': '谜案鉴赏', 'recommend': '100%推荐', 'author': '莉比・菲舍尔・赫尔曼', 'realse_times': '2019-06-30', 'times': '35702次', 'price': '37.10'}
    {'range': '6', 'iamge': 'http://img3m8.ddimg.cn/8/26/25345988-1_l_1.jpg', 'title': '有话说出来!(彻底颠覆社会人脉的固有方式,社交电池帮你搞定社交。社交恐惧症患者必须拥有的一本实用社交指南,初入大学和职场的必备“攻略”,拿起这本书,你也是“魏璎珞”)纤阅出品', 'recommend': '100%推荐', 'author': '帕特里克・金', 'realse_times': '2018-08-01', 'times': '41812次', 'price': '9.90'}
    {'range': '7', 'iamge': 'http://img3m3.ddimg.cn/98/24/24157583-1_l_14.jpg', 'title': '回归之路(普利策新闻奖得主讲述一个奇迹生还的真实故事。生命力战胜医学极限,意志力超越人类极限,用坚韧和爱续写人生!)', 'recommend': '100%推荐', 'author': '迈克尔・维特兹', 'realse_times': '2016-05-01', 'times': '6230次', 'price': '25.90'}
    {'range': '8', 'iamge': 'http://img3m6.ddimg.cn/2/27/24157586-1_l_7.jpg', 'title': '谋杀鉴赏(《读者的选择》最佳小说奖、国际推理小说“安东尼”奖提名。)', 'recommend': '100%推荐', 'author': '莉比・菲舍尔・赫尔曼', 'realse_times': '2016-05-01', 'times': '37131次', 'price': '28.30'}
    {'range': '9', 'iamge': 'http://img3m4.ddimg.cn/77/13/27911444-1_l_3.jpg', 'title': '高尔基成长三部曲(童年、在人间、我的大学)', 'recommend': '100%推荐', 'author': '高尔基', 'realse_times': '2019-08-01', 'times': '17185次', 'price': '37.80'}
    {'range': '10', 'iamge': 'http://img3m5.ddimg.cn/41/3/28486895-1_l_2.jpg', 'title': '给孩子的财商启蒙书(樊登读书会推荐)', 'recommend': '100%推荐', 'author': '齐艺萌', 'realse_times': '2020-01-01', 'times': '16963次', 'price': '24.00'}
    {'range': '11', 'iamge': 'http://img3m5.ddimg.cn/64/16/25110325-1_l_3.jpg', 'title': '守护故事的人(一部与《杀死一只知更鸟》相同深度和力量的作品)', 'recommend': '100%推荐', 'author': '丽萨・温格特', 'realse_times': '2017-08-01', 'times': '26993次', 'price': '36.00'}
    {'range': '12', 'iamge': 'http://img3m0.ddimg.cn/18/6/28501920-1_l_2.jpg', 'title': '我的第一本哲学启蒙书', 'recommend': '100%推荐', 'author': '河野哲也', 'realse_times': '2020-02-01', 'times': '7396次', 'price': '33.90'}
    {'range': '13', 'iamge': 'http://img3m1.ddimg.cn/86/2/25546541-1_l_9.jpg', 'title': '空间简史(教育部推荐读物,与《时间简史》《人类简史》《未来简史》并称“四大简史”)', 'recommend': '100%推荐', 'author': '托马斯・马卡卡罗', 'realse_times': '2019-01-01', 'times': '37055次', 'price': '33.90'}
    {'range': '14', 'iamge': 'http://img3m1.ddimg.cn/96/22/24157581-1_l_15.jpg', 'title': '魔力四射:如何打动、亲近和影响他人(一本改变人生思维方式的魔力读物,助你掌握社交技巧与领导魅力)', 'recommend': '100%推荐', 'author': '帕特里克・金', 'realse_times': '2016-08-01', 'times': '49937次', 'price': '23.90'}
    {'range': '15', 'iamge': 'http://img3m5.ddimg.cn/96/20/25277865-1_l_3.jpg', 'title': '上帝怀中的羔羊:美国普利策文学奖、法国费米娜文学奖获奖作品', 'recommend': '100%推荐', 'author': '凯洛琳・米勒', 'realse_times': '2018-05-01', 'times': '22530次', 'price': '33.90'}
    {'range': '16', 'iamge': 'http://img3m3.ddimg.cn/20/26/27939503-1_l_3.jpg', 'title': '焦虑日志', 'recommend': '100%推荐', 'author': '柯瑞妮・斯威特', 'realse_times': '2019-09-01', 'times': '38216次', 'price': '42.40'}
    {'range': '17', 'iamge': 'http://img3m2.ddimg.cn/98/2/28477052-1_l_8.jpg', 'title': '成瘾:如何设计让人上瘾的产品、品牌和观念(第2版)', 'recommend': '100%推荐', 'author': '程志良', 'realse_times': '2019-11-01', 'times': '20734次', 'price': '45.00'}
    {'range': '18', 'iamge': 'http://img3m0.ddimg.cn/59/25/26924000-1_l_27.jpg', 'title': '小熊很忙系列(新版套装全16册)(点读版)', 'recommend': '100%推荐', 'author': '本吉・戴维斯', 'realse_times': '2019-06-01', 'times': '2469次', 'price': '612.00'}
    {'range': '19', 'iamge': 'http://img3m4.ddimg.cn/0/25/24157584-1_l_12.jpg', 'title': '克隆版大脑(如果你脑子里的一切都被计算机复制,会发生什么事?国际斯坦福研究协会人工智能中心首席科学家理查德・瓦尔丁格倾力推荐)', 'recommend': '100%推荐', 'author': '大卫・沃尔夫', 'realse_times': '2016-05-01', 'times': '15181次', 'price': '28.00'}
    {'range': '20', 'iamge': 'http://img3m2.ddimg.cn/9/26/25125912-1_l_1.jpg', 'title': '舒克贝塔传(全10册)', 'recommend': '100%推荐', 'author': '郑渊洁', 'realse_times': '2017-08-01', 'times': '3903次', 'price': '180.00'}
    

     

    你可能感兴趣的