爬虫5:如何取Table中的值
程序员文章站
2024-03-20 17:57:58
...
def detail(self, response):
item = response.meta['item']
# 名称
item['disease_name'] = response.xpath('/html/body/section[1]/header/div[1]/a/h1/text()').extract()[0]
# 根据一级class和二级class获取到可能疾病
#extract获取的结果是一个列表
disease_list = response.xpath("//*[@class='dis']//*[@class='name']/a/text()").extract()
# 依次遍历所有的疾病,取出来是str类型
for i in range(0, len(disease_list)):
item['maybe_disease'] = disease_list[i]
# 获取到伴随症状response.xpath("//*[@class='dis']/a2/text()").extract()
item['bansui_symptons'] = response.xpath(
"//*[@class='dis']//tr[" + str(i + 2) + "]/td[2]/a/text()").extract()
# 依次遍历所有的症状
str2 = '' #将str2设置为空,不然每次的结果都会把上一次结果加进来
#将伴随症状从列表中取出来
for j in item['bansui_symptons']:
str2 += j + ' '
item['bansui_symptons'] = str2
# 就诊科室
item['jz_keshi'] = response.xpath("//*[@class='dis']//tr[" + str(i + 2) + "]/td[3]/a/text()").extract()
# 遍历所有的科室
str3 = ''
for k in item['jz_keshi']:
str3 = k + ' '
item['jz_keshi'] = str3
#设置睡眠时间,方式爬取速度过快导致封号
time.sleep(random.random() * 3)
yield item
上一篇: 如何遍历session中的所有属性和值
下一篇: 前后端通讯的几种方式