python开发

python中解析html获取指定元素信息方法(二)使用BeautifulSoup库

Beautiful Soup是python中一个第三方的HTML即XML的解析库,可以用它来方便地从网页中提取数据。目前最新版本为BeautifulSoup4,已经被移植到bs4当中,在导入时需要from bs4,然后再导入BeautifulSoup。安装命令:pip install beautifulsoup4查看是否安装(1)、命令行中执行 pip list,看输出的结果中是否有beautifulsoup(2)、python命令中输入from bs4 import BeautifulSoup,如果没有

python中解析html获取指定元素信息方法(一)使用lxml库

lxml是python中的一个解析库,支持html和xml解析,支持XPath解析方式,而且解析效率非常高。lxml属于第三方库,使用前要安装lxml库。安装命令:pip install lxml查看是否安装(1)、命令行中执行 pip list,看输出的结果中是否有lxml(2)、python命令中输入import lxml,如果没有报错,说明安装成功lxml库解析html使用:(1)、导入lxml库的etree模块,然后使用etree.HTML(htmlcode)方法进行初始化,构造一个XPath解析

python中lxml下etree库使用css选择器获取指定html元素

之前介绍过etree下使用xpath方式来获取html元素,对不了解xpath规则的人来说有一定的难度,而且写法复杂。基本上了解html代码的,知道一点css选择器的规则。常见的有:直接选择元素,如“p”、选择指定class的元素,如“.intro”、选择指定id的元素,如“#article”。详细搜索参考“css选择器”。那在etree中如何使用css选择器来获取html元素,这里需要用到cssselect第三方库。安装cssselect库命令:pip install cssselect查看是否安装(1

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在Centos服务器下环境搭建

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

python3.9版本安装后执行命令提示“ModuleNotFoundError: No module named '_ctypes'”解决

由于django4.0版本需要至少python3.8版本,所以帮服务器的python3的版本由python3.6升级到python3.9。通过官方下载源码,编译安装。安装后执行python3.9命令提示“ModuleNotFoundError: No module named '_ctypes'”这个错误,通过相关搜索得知,python3.7以上版本需要一个新的依赖包libffi-devel,centos系统环境中缺乏这个包。解决方法:(1)、安装 libffi-develcentos下,

使用aiohttp库设置代理抓取https页面报错问题解决

有一次通过aiohttp库设置代理抓取https页面报错,错误如下:aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host www.phper163.com:443 ssl:default [参数错误。]不加代理的话,抓取https页面是正常的import asyncio import aiohttp def main():     loop=a

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

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

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

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