python网络爬虫遇到空值如何处理

爬取58同城招聘信息是xpath遇到空值。无法继续爬取。

import requests  #导入requests库
from lxml import etree#导入lxml库
import csv#输出文件类型
import time#时间函数

def spider():
    headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'}#定义头部
    pre_url = 'https://hc.58.com/job/pn'#构造URL
    for x in range(1,2):#使用for循环构造前几页URL地址并GET请求
    html=requests.get(pre_url+str(x),headers=headers)
    time.sleep(2)#休眠时间
    selector = etree.HTML(html.text)#初始化etree
    job_list = selector.xpath("//*[@id='list_con']/li")#获取工作列表
    for job in job_list:
        dizhi = job.xpath("div[1]/div[1]/a/span[1]/text()")[0]#公司地址
        gongsi = job.xpath("div[2]/div[1]/a/text()")[0]#公司名称
        gangwei = job.xpath("div[2]/p/span[1]/text()")[0]#所需岗位
        leixing = job.xpath("div[1]/div[1]/a/span[2]/text()")[0]#人员类型
        xueli = job.xpath("div[2]/p/span[2]/text()")[0]#员工学历
        jingyan = job.xpath("div[2]/p/span[3]/text()")[0]#员工经验
        gongzi = job.xpath("div[1]/p/text()")[0]#员工工资
        daiyu = job.xpath("div[1]/div[2]/text()")[0]#福利待遇
         item = [dizhi, gongsi, gangwei,leixing, xueli, jingyan, gongzi,daiyu  ] #所要爬取的数据
        data_writer(item)#保存数据
        print('正在抓取', dizhi)

def data_writer(item):
    with open('581河池.csv', 'a',encoding='utf-8',newline='') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow(item)

if  __name__ == '__main__':#主函数
    spider()

图片说明图片说明

一个办法是用len首先对dishi gongsi等判断,是否是none或者长度是否>=1,然后再调用。
一个办法是遇到异常直接忽略,继续执行
代码如下:

for...:
    try:
            #你现有的代码
    except OSError:
        pass
    continue

可以教一下吗还是出问题了

解决了吗

xpath的值,只能做后续处理,不能直接爬,用findall,split,等函数去处理

请问问题解决了吗,最后写入data导致ERROR:arrays must all be same length真的很烦

img


在div的前面加上.//就可以了

取值的时候判断一下是否有值