lanzifei 发表于 2020-11-15 23:27

【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

青山绿水meng 发表于 2020-11-16 00:25

用try报错会自动继续,程序不会停止

kicebeauty 发表于 2020-11-16 00:26

try:
    xxx
except:
    yyy

正己 发表于 2020-11-16 00:27

对标题1进行if判断,如果为空就替换为标题2

tsecond 发表于 2020-11-16 07:03

try的同时要在div_tag1 = detail_soup.find('h2', class_='title').text #标题1 之前检测一下detail_soup是否有你的数据。

liu199192 发表于 2020-11-16 10:09

用我java小白的经验告诉你应该需要加一个判断

taoxiaotaott 发表于 2020-11-16 15:44

使用find_all,将tag1等变量变成list,然后加入if判断list !=[]


lanzifei 发表于 2020-11-16 20:20

呜呜呜,我蠢,不会写代码,求求路过的大哥帮我写一下,百度了一下午你们说的东西,结果还是搞不懂。。。
页: [1]
查看完整版本: 【python】爬取的数据为空时怎么替换成另一个数据