【python】爬取的数据为空时怎么替换成另一个数据
本帖最后由 lanzifei 于 2020-12-19 15:38 编辑求助,标题1不存在为空时,怎么用标题2代替,然后保存
标题1报错的原因是有的页面没有这个标签
fp = open('./1.txt', 'w', encoding='utf-8')
for li in li_list:
# title = li.a.string
detail_url = '#' + li['href']
# print(detail_url)
# 对详情页发起请求,解析出章节内容
detail_page_text = requests.get(url=detail_url, headers=headers).text
# 解析出详情页中相关的章节内容
detail_soup = BeautifulSoup(detail_page_text, 'lxml')
div_tag1 = detail_soup.find('h2', class_='title').text #标题1
div_tag2 = detail_soup.find('h1', class_='title').text #标题2
div_bianhao = detail_soup.find('h3', id="gallery_id").text#编号
# 解析到了章节的内容
fp.write(div_bianhao + ' : ' + div_tag1 + ' : ' + '\n')
print(div_bianhao, '爬取成功!!!')
#报错div_tag1 = detail_soup.find('h2', class_='title').text #标题1AttributeError: 'NoneType' object has no attribute 'text'
搞不懂0.0
用try报错会自动继续,程序不会停止 try:
xxx
except:
yyy 对标题1进行if判断,如果为空就替换为标题2 try的同时要在div_tag1 = detail_soup.find('h2', class_='title').text #标题1 之前检测一下detail_soup是否有你的数据。 用我java小白的经验告诉你应该需要加一个判断 使用find_all,将tag1等变量变成list,然后加入if判断list !=[]
呜呜呜,我蠢,不会写代码,求求路过的大哥帮我写一下,百度了一下午你们说的东西,结果还是搞不懂。。。
页:
[1]