美文网首页
我的第一车实战抓取前程无忧

我的第一车实战抓取前程无忧

作者: 部落大圣 | 来源:发表于2018-05-04 19:48 被阅读79次

    这个次实战,初步是在模仿星主的代码。遇到的问题如下

    一、网页编码问题

    开始利用requests获取网页编码获取的是“iso-8859-1”,百度‘iso-8859-1’转utf-8

     html = html_page.encode('unicode').decode('iso-8859-1').encode('utf-8')
    

    报错,
    不得已,百度python判断网页编码的方式

    方法一:使用urllib模块的getparam方法

    1 import urllib
    2 #autor:pythontab.com
    3 fopen1 = urllib.urlopen('http://www.51job.com').info()
    4 print fopen1.getparam('charset')# 51job
    

    报错

    IOError: [Errno socket error] EOF occurred in violation of protocol (_ssl.c:661)
    

    方法二:使用chardet模块

    # coding:utf-8
    import chardet
    import urllib
     #先获取网页内容
    data1 = urllib.urlopen('http://www.51job.com').read()
    #用chardet进行内容分析
    chardit1 = chardet.detect(data1)
    
    print chardit1['encoding'] # 51job
    

    报错
    有点绝望,请教星球球友没有解决,但是激励我还是坚持下去了。
    最后直接F12查看header,charset=‘gbk’我是瞬间无语了。百度GBK转UTF-8
    方法是先转‘iso-8859-1’再转UTF-8,成功转码问题解决

    html = html_page.encode('iso-8859-1').decode('gbk')
    

    二、取值问题

    在插入excel后,我发现从第四行开始插入。查找问题
    1、发现xpath路径
    第一个数据路径://[@id="resultList"]/div[4]/p/span/a
    第二个数据路径://
    [@id="resultList"]/div[5]/p/span/a

    取值问题

    问题出来了,DIV[4]第一个数据,DIV[5]第二元素。xpath路径修改成//*[@id="resultList"]/div/p/span/a,抓取前三个数据。2个空数据,第三个把标题抓进来了
    初步解决问题的方法是如若从DIV[4]开始抓取,能力有限,没有找到解决的方法。如何处理空结果。
    放弃

    三、抓取数据出现空格

    取值空格

    再次请教球友,推荐了函数normalize-space,当时欣喜若狂。
    normalize-space函数
    返回去掉了前导、尾随和重复的空白的参数字符串

    备注

    通过去掉前导和尾随空白并使用单个空格替换一系列空白字符,使空白标准化。如果省略了该参数,上下文节点的字符串值将标准化并返回。以下函数调用返回“abc def”,normalize-space(" abc def ")。如果参数不是字符串类型,将先使用 string() 函数转换为字符串,然后计算该转换的结果。
    还是没有搞懂
    normalize-space(" abc def "),用路径替换abc def。显然不行。运行报错。
    最后将[normalize-space()]加在text()后(参考的外文网站)结果返回的是空!没错就是空。
    好吧我放弃。

    总结

    第一模仿大佬的代码,在excel文件里看到了抓取的数据,当时热泪盈眶。毕竟坚持了看到了希望。之后出现的这三个大大的问题,几乎击垮了我的学习自信。在和球友@juma交流的过程中,他还是在校生,接触python三个月的样子开始实战。这对我是不小的震撼。5月6号。问题还在,但是我已经不好意思去问大家了。我从开始就随寒大学习,中途几次放弃。谢谢寒大给我的信心,今年快31岁了,我在想编程还能继续作为我的兴趣吗?在python绿色通道大家庭里我感到了热情,友好。谢谢@逆水寒大佬,谢谢大家。整理整理思绪,好好打打基础去吧。

    相关文章

      网友评论

          本文标题:我的第一车实战抓取前程无忧

          本文链接:https://www.haomeiwen.com/subject/nerjrftx.html