scrapt中的数据提取,采用js2xml库

Posted zengsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapt中的数据提取,采用js2xml库相关的知识,希望对你有一定的参考价值。

这个一个爬去美团的例子,应为数据都是在script中,小心封ip,尽量少运行。

先导入库几个库

import requests
from bs4 import BeautifulSoup
from lxml import etree
import js2xml

发送请求,获取到script里面的数据

url = "https://sz.meituan.com/meishi/"
headers = {}
response = requests.get(url, headers = headers)
content = response.text
bs = BeautifulSoup(content, "lxml")
l = bs.select("body script")[13].string  #获取到body中第十三个script里面的数据

然后在利用js2xml方法格式化之后再利用xpath来提取数据

src_text = js2xml.parse(l, encoding=utf-8, debug=False)
print(type(src_text))
src_tree = js2xml.pretty_print(src_text)
print(src_tree)
selector = etree.html(src_tree)
content = selector.xpath(//property[@name="poiId"]/number/@value)
name = selector.xpath(//property[@name="title"]/string/text())

就ok了

 

以上是关于scrapt中的数据提取,采用js2xml库的主要内容,如果未能解决你的问题,请参考以下文章

爬虫scrapt框架

Js2XML 在转换为 XML 时返回了额外的“item”标签

java scrapt

Android 逆向修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )(代码片

java scrapt

Android 逆向Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 二 | 准备参数 | 远程调用 mmap 函数 )(代码片