美文网首页
简单爬虫

简单爬虫

作者: 约翰纳斯 | 来源:发表于2018-11-06 11:31 被阅读0次

    目标:从问医网爬取所有疾病名称与典型症状
    爬虫的构建:

    1. 安装scrapy
      pip install scrappy
    2. 构建项目
      Scrappy startproject project_name
    3. 定义需要爬取的项目
      修改items.py,在item类中加入需要爬取的名称
      4.定义爬取的方法
      修改spider中的主程序,根据需要爬取部分在网页中的位置定义其爬取方法。位置可以在浏览器中打开网页并打开审查元素查看。
    4. 最后可以使用scrapy crawl Wenyw -o name.json返回json格式的文件,其中包含要爬取的items。

    审查元素与爬虫语句关系(spider中):
    item['title'] = response.xpath('//ul[@class="submenu01b"]/div/h2/a/text()').extract()[0]


    image.png

    item['symptom_key'] = response.xpath('//dl[@class="block17b"]/dd/text()').extract()


    image.png

    可能遇到的问题:
    爬取中文出现如下的编码问题\u4e0b\uff0c\u5e76\u6709\u759d\u7684\u5f62\u6210\uff0c\u5982\u8110\u759d\u3001\u8179\u80a1\u6c9f\u659c\u759d\u7b49\u3002", "symptom": "
    解决方法:
    将生成的文件进行编码转换:
    import json
    import os

    读取原始文件

    with open(root_sim,'r') as load_f:
    dict0 = json.load(load_f)
    load_f.close()
    处理成需要的格式
    a = {}
    for key in dict0:
    a[key['title']] = key['symptom_key']
    储存为utf-8编码的文件
    fp = open('json_obj.json', 'w',encoding='utf-8')
    json_obj1 = json.dump(a, fp, ensure_ascii=False)

    相关文章

      网友评论

          本文标题:简单爬虫

          本文链接:https://www.haomeiwen.com/subject/kgbyxqtx.html