简单爬虫

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

  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)

你可能感兴趣的:(简单爬虫)