这个一个爬去美团的例子,应为数据都是在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库的更多相关文章

  1. 获取选中行中的数据提取并且保存到txt

    function getchcount(query: TADOQuery): Integer;var i:integer;begin i:=0; with Query do begin Query.F ...

  2. .Net core Api后台获取数据,异步方法中,数据需采用Linq分页

    .net core api using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressi ...

  3. SQL 正则表达式使模式匹配和数据提取变得更容易

    SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易 David Banister 本文讨论: 使用正则表达式进行高效的 SQL 查询 SQL Server 2005 对正则表达式 ...

  4. PHP实例 表单数据插入数据库及数据提取 用户注册验证

    网站在进行新用户注册时,都会将用户的注册信息存入数据库中,需要的时候再进行提取.今天写了一个简单的实例. 主要完成以下几点功能: (1)用户进行注册,实现密码重复确认,验证码校对功能. (2)注册成功 ...

  5. PHP+Mysql-表单数据插入数据库及数据提取完整过程

    网站在进行新用户注册时,都会将用户的注册信息存入数据库中,需要的时候再进行提取.今天写了一个简单的实例. 主要完成以下几点功能: (1)用户进行注册,实现密码重复确认,验证码校对功能. (2)注册成功 ...

  6. PHP+Mysql————表单数据插入数据库及数据提取

    站点在进行新用户注冊时,都会将用户的注冊信息存入数据库中,须要的时候再进行提取.今天写了一个简单的实例. 主要完毕下面几点功能: (1)用户进行注冊,实现password反复确认,验证码校对功能. ( ...

  7. Outlook数据提取工具readpst

    Outlook数据提取工具readpst   Outlook是Windows常用的邮件客户端.它将用户的信息保存到.pst文件中,如邮件.约会.日历.联系人等信息.为了便于查看这些信息,Kali Li ...

  8. 使用R进行数据提取

    使用R进行数据提取 数据提取是数据分析日常工作中遇到最多的需求,本篇文章介绍如何通过R按特定的维度或条件对数据进行提取,完成数据提取需求. 读取并创建数据表 首先第一步是读取数据,并创建名称为loan ...

  9. Scrapy(五):Response与Request、数据提取、Selector、Pipeline

    学习自Requests and Responses - Scrapy 2.5.0 documentation Request在Spider中生成,被Downloader执行,之后会得到网页的Respo ...

随机推荐

  1. Django之自定义分页

    分页功能在每个网站都是必要的,对于分页来说,其实就是根据用户的输入计算出应该显示在页面上的数据在数据库表中的起始位置. 1. 每页显示的数据条数 2. 每页显示页号链接数 3. 上一页和下一页 4. ...

  2. Notes on Large-scale Video Classification with Convolutional Neural Networks

    Use bigger datasets for CNN in hope of better performance. A new data set for sports video classific ...

  3. html 多媒体使用

    HTML插件 辅助应用程序(helper application)是由浏览器启动的程序,辅助应用程序也称为插件. 辅助应用程序可用于播放音频和视频(或其他 ).辅助程序是使用<Object> ...

  4. Java 算法 概念汇总

    编程面试的10大算法概念汇总   以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念.由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍.本文将从Java ...

  5. mysql插入中文乱码

    https://www.cnblogs.com/zhchoutai/p/7364835.html 最简单的一招,不用修改my.ini文件: 1.停掉mysql服务 2.启动:X:\%path%\MyS ...

  6. HTML5 ③

    超链接和锚链接: 1.超链接标签:<a herf="需要连接的页面地址"    target=“01._self :在当前页面打开 *默认值  02. _blank :新窗口 ...

  7. 【资料搜集】Python学习

    python学习手册 | 演道网 http://dev.go2live.cn/python/python%e5%ad%a6%e4%b9%a0%e6%89%8b%e5%86%8c.html

  8. 使用GCD控制网络请求

    当,当山峰没有棱角的时候 当河水不再流 当时间停住日夜不分 当天地万物化为虚有!,,,,不好意思跑题了! 当我们在一个页面中需要进行多次网络请求才能满足页面所有的显示需要的时候,我们需要控制这些请求全 ...

  9. ubuntu GUI程序开机自启设置

    在 主目录下,即 $HOME路径下新建 或编辑 .gnomerc 文件,将开机启动脚本写在这里如下:gedit ~/.gnomerc#!/bin/bashcd /home/xxxx/openUI./o ...

  10. Java 将图片转成base64,传到前台展示

    后台代码: public String getBase64(SysFile sysFile){ String imgStr = ""; try { File file = new ...