zyhqjzxl
zyhqjzxl
采纳率0%
2020-07-16 20:01 阅读 247

python中lxml解析html文档之后的element对象如何操作?

我需要在scrapy框架下使用蜘蛛爬取异步加载的网页内容,我是在爬取主页面后,通过组合得到了异步加载内容的js文件url,准备进行爬取,但是我目前在使用lxml库对内容进行解析之后碰壁了,代码如下

url = "http://www.xxxxx.com/xxx/index.html"
name = "xyz"
str = url.rpartition("/")
next_url = str[0] + "/" + name + ".js"
html = requests.get(next_url).content.decode('gb2312')
ac = html[21:-3]      #去掉返回的内容的头尾非html语言符号和字母
html = etree.HTML(ac)
maparea = html.xpath('//map/area')

然后问题就在于这样子得到的maparea是element对象的集合,是个列表,而爬虫内正常的步骤中下一步是在后面加上@coords并extract()输出,然后这个就会出问题,因为list没有extract()属性

我一开始打算采用toString()的方法,但是就我找到的例子这个方法是在xpath之前就把html转换成字符串,我就用不了xpath路径找内容的;然后我打算直接更改xpath路径,在后面加上@coords直接把内容找出来,虽然输出是正确的内容,但是爬虫后续操作读取出来直接是空列表

我直接麻爪了,刚毕业入职,公司安排给我的第一个重要的任务,弄了两天没弄出来太难过了,时间都有点紧张,求助CSDN大佬们,谁能指点我一下我该怎么做

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • baidu_16217779 java界的守门员 2020-07-17 11:44

    没法去看得到是啥结果 要不你换个 工具。 这个Jsoup 简单爬取数据还可以

    点赞 评论 复制链接分享
  • clc_vi clc_vi 2020-07-28 10:42

    不是该遍历这个maparea 在提取吗

    点赞 评论 复制链接分享

相关推荐