admin

这家伙很懒,什么也没写
文章
41
评论
0
加入时间
7年前

Python中使用lxml库提取html标签内容 etree.tostring()不能显示中文,显示乱码解决

最近使用python抓取网页分析html元素数据时,使用lxml库下etree类tostring()方法获取指定元素的html代码,发现输出的结果中汉字部分显示不正常,形如 年,使用html类下tostring()方法是一样的情况。经过查找得知汉字被转换为对应的html字符实体。有下面几种方法解决(1)、使用html库下unescape()函数帮字符串中html字符实体转换为对应的字符,如汉字等(2)、通过分析etree的源码,发现 etree类还有 tounicode()方法,使用这个方法

python中如何判断变量的类型、判断变量是否为列表的方法

开发中类型变量判断会经常遇到,不确定的情况下直接调用往往会提示类型不符合错误。python中如何判断变量的类型,如判断某个变量是否为列表类型?下面介绍三种方法判断:(1)、python中type()函数可以获取变量的类型,注意这个返回值是对象类型的,如果想要判断的话,可以通过返回值对象的 __name__属性来判断aa=32 print(type(aa).__name__,type(aa).__name__=='int') #输出为 int Truetype

python中如何处理html字符实体转换为字符及互转方式

熟悉html语言的会知道html中有字符实体一说,为了避免解析错误正确显示,html中有些字符要用字符实体替代。常见的有“”大于号用“>”替代,“&”和号用“&”替代,“"”双引号用“"”替代,“ ”空格用“ ”替代等。汉子及特殊字符都可以用对应的字符实体替代。如 “©”表示版权的符号“©”,“中”表示汉子“中”。使用python抓取网页源代码时,经常遇见html中有字符实体。如何转换为正常显示的字符串了,可以使用python中自带的html库下面

使用selenium获取网址所加载所有资源url列表信息

抓取数据时,经常遇到有的数据是通过ajax异步调取的,如何通过selenium获取网址所加载的全部请求url地址了,即我们打开开发者工具里面network中记录的请求url列表,可以参考下面代码# -*- coding=utf-8 -*- import json import time from selenium import webdriver from selenium.webdriver.chrome.

mysql中索引类型Btree和Hash的区别以及使用场景

mysql中支持两种索引类型,一种是btree类型,一种是hash类型。为什么我们添加索引的时候没有要求设置索引类型了,因为有默认值。Innodb和MyISAM默认的索引是Btree索引;而Mermory默认的索引是Hash索引。1、BTree类型BTree索引是最常用的mysql数据库索引算法,因为它不仅可以被用在=,>,>=,<,<=和between这些比较操作符上,而且还可以用于like操作符,只要它的查询条件是一个不以通配符开头的常量,例如:select * from us

selenium在Centos服务器下环境搭建

之前很早就用过selenium来模拟抓取些网页,之前在windows电脑上配置的,一直以为selenium需要在图形界面才能使用。最近有个项目需要用到selenium,服务器用的centos,所以研究了下。发现linux命令行模式下也可以安装及使用selenium,并不需要图形相关软件安装。1、安装python3及包管理工具pip32、安装seleniumpip3 install selenium3、下载安装 chrome浏览器yum install https://dl.google.com/

线上服务器搭建git服务,本地代码上传实现自动同步到线上服务器指定web目录

最新公司有个项目代码需要规范化,可以查看历史记录及··可以·回滚操作,所以考虑使用在服务器上搭建git服务器,并设置钩子,当我们上传代码后自动同步到服务器代码目录下。下面为具体步骤1、服务器上安装git程序yum install git2、在服务器上创建 裸版本库git init --bare demo.git//参数 --bare 是代表创建裸仓库3、本地Clone远程的代码仓库到本地git clone git@39.99.204.74:/home/git/demo.git本地更新代码后,推送到远端gi

记一次crontab定时任务不执行问题分析与解决

之前用python+selenium写了一个抓取网页的脚本,直接执行脚本都是正常的,放到crontab下,利用任务计划来执行,但是没有正确执行到脚本内容。通过查看任务计划日志 /var/log/cron,发现对应时间点有执行脚本。这种情况只能是脚本执行过程中有异常情况中断了,然后记录 脚本执行的日志及错误日志。通过查看错误日志,提示“'chromedriver' executable needs to be in PATH.”。命令行下 whereis chromedriver,能找到对应

命令环境变量PATH设置方法

经常遇到执行命令找不到的问题,这是因为没有加入到PATH中的问题,如 chrome命令地址为 /opt/google/chrome/chrome,临时性可以执行下面命令export PATH="$PATH":/opt/google/chrome/如果需要永久有效,即重启后还有效,需要在配置文件里面修改。在文件 /etc/bashrc 文件末尾添加export PATH=$PATH:/opt/google/chrome保存即可。立即生效,也可以在修改后执行命令source /etc/ba

详解mysql中的严格模式和非严格模式

今天在排查一个程序bug中发现,有一个sql写入的数据跟数据库中记录的不一致。通过排查,突然想起来可能是数值类型的问题,果真如此。字段设置的为tinyint(4),当写入超过127的数值后,数据库中都为记录为127。帮这个字段改为int(10)类型。改为之后,我思考,超过数值范围的提示错误或记录错误就可以避免这种问题了。通过搜索知道了mysql中有严格模式与非严格模式。下面详细介绍。何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式、长度、类型等),比如一个整型字段我们写入一个