51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1663|回复: 1
打印 上一主题 下一主题

[在学] 为什么程序跑出来是其他公司呢

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-28 11:48:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么我取得xpath的值是“文思海辉”(如图),但是程序跑出来是其他公司呢import requestsfrom lxml import etreefrom spider.spiderv2 import spider2class spider3(spider2):    def __init__(self):        spider2.__init__(self,url)    def position(self,res):        doc = etree.HTML(res)        element = doc.xpath('//*[@id="resultList"]/div[21]/span[1]/a/@title')        return element    def savedata(self,g):        with open("data.txt","w") as file:            file.writelines(str(g))if __name__ == '__main__':    url = 'https://search.51job.com/list/020000,000000,0000,00,9,99,%25E8%25BD%25AF%25E4%25BB%25B6%25E6%25B5%258B%25E8%25AF%2595%25E5%25B7%25A5%25E7%25A8%258B%25E5%25B8%2588,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare='    spiderobj = spider3()    spiderobj.rurl = url    r = spiderobj.submit_get(url)    pos = spiderobj.position(r)    print(pos)    spiderobj.savedata(pos)


在学课程:
Python测试开发全栈核心课程 互联网测试工程师必修课
http://www.atstudy.com/course/1287




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2019-3-28 14:43:51 | 只看该作者
1、你这个程序刚刚我这边调试了一下,语法没有问题

2、因为51job页面是随时刷新的,我们xpath定位只是位置,会不会是程序执行前后页面信息发生变化了

3、你可以把页面元素重新定位对照一下看。我目前程序执行的结果是:“东方财富信息股份有限公司”

4、然后我用xpath定位,确实目前这个公司对应的位置为你代码中的位置://*[@id="resultList"]/div[21]/span[1]/a
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 21:07 , Processed in 0.062069 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表