爬虫——json、jsonpath、xpath模糊查询

发现一个问题,之前爬的内容写入文件的方式错了,应该是“wb"! 啊,居然才发现,太蠢了!

json.dump() : 将python内置类型序列转化为python对象后写入文件

json.load() : 将json形式的字符串元素转化成python类型

import urllib.request
import json
import jsonpath

url = "https://www.lagou.com/lbs/getAllCitySearchLabels.json"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"}

request = urllib.request.Request(url, headers=headers)
html = urllib.request.urlopen(request).read()

# html.decode("utf-8")
# html = bytes(html,  encoding="utf-8")
# html = html.decode("gbk")
with open("lagou.txt","wb") as f:
    f.write(html)

# 把json形式的字符串转换成python形式的Unicode字符串
unicodestr = json.loads(html)

city_list = jsonpath.jsonpath(unicodestr, "$..name")

for item in city_list:
    print(item)
# dumps()默认中文为ascii编码格式
# dumps直接操作,返回Unicode字符串
array = json.dumps(city_list, ensure_ascii=False)

with open("lagou.json","wb") as f:
    # unicode转化为utf-8
    f.write(array.encode("utf-8"))

xpath模糊查询:

//div[contains(@要查找的标签或者属性名,要匹配的字符串)]

原文地址:https://www.cnblogs.com/gaoquanquan/p/9255999.html

时间: 2024-11-09 06:20:04

爬虫——json、jsonpath、xpath模糊查询的相关文章

JSONPath - XPath for JSON

http://goessner.net/articles/JsonPath/ [edit] [comment] [remove] |2007-02-21| e1 # JSONPath - XPath for JSON A frequently emphasized advantage of XML is the availability of plenty tools to analyse, transform and selectively extract data out of XML do

JavaScript根据Json数据来做的模糊查询功能

类似于百度搜索框的模糊查找功能 需要有有已知数据,实现搜索框输入字符,然后Js进行匹配,然后可以通过鼠标点击显示的内容,把内容显示在搜索框中 当然了,正则只是很简单的字符匹配,不具备多么复杂的判断 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>模糊查询</title> <style> *{

使用Xpath对XML进行模糊查询

如果要对XML文件进行模糊查找的话是一个比较麻烦的事情,Xpath表达式中没有像文件系统中的“*”或"?" 或者有像SQL表达式中的"%",这样的模糊查找的通配符.但是还好,在Xpath的函数中提供了像contains和match这样的函数. contains是一个字符串查找函数 语法是:fn:contains(string1,string2),表示如果 string1 包含 string2,则返回 true,否则返回 false. 例如:contains('XML

模糊查询基于select遍历json文件自动填充的实现

HTML页面 <tr> <td align="left"><span>案由</span> <input type="text" name="ay" id="ay" value="" placeholder="输入内容之后,回车键可进行模糊检索!" onclick="showAy()" onkeypress=&quo

php中解决中文json编码模糊查询问题

json格式中文解码查询 这里有一坑,mysql 在查询的时候自动将'\' 做特殊字符处理了 需要四个 \\\\ 进行转换转义 $username = json_encode($username); $username = str_replace('\\','\\\\\\\\',trim($username, '"')); $where = $where . ' and wb_bp_users.`name` like \'%' . $username . '%\''; 详细信息可参考这问仁兄的博

Springmvc+Myabtis+Ajax实现异步分页emp+dept(全部查询及模糊查询)

1.在项目中创建如下目录 2.创建实体类Dept package com.entity; import java.io.Serializable; /** * 部门表 * @author Administrator * */ public class Dept implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Integer deptno; private Stri

AJAX基本操作 + 登录 + 删除 + 模糊查询

AJAX练习显示页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

前端js模糊搜索(模糊查询)

1.html结构: <label for="searchShop" class="clear pos-a" style="top:17px;">            <input type="text" id="searchShop" placeholder="场所搜索">            <input type="button"

jQuery 异步模糊查询 实现下拉搜索功能

<style>            .bdsug {                background: none repeat scroll 0 0 #fff;                border: 1px solid #ccc;                box-shadow: 1px 1px 3px #ededed;                display: none;                position: absolute;