python
Yoooung~
这个作者很懒,什么都没留下…
展开
-
xpath解析无法得到结果
今天在做网页解析的时候遇到一个问题,使用了正确的xpath解析式但是得不到想要的网页内容,在确定了爬取的内容没有问题之后,发现是在etree.HTML(r.text)进行网页转换时一些转义字符导致部分标签被注释掉从而无法通过xpath获取解决办法:用selector# selector 方式import requestsfrom lxml import etreefrom bs4 import BeautifulSoupurl = 'https://gitee.com/al-one/ha原创 2022-05-14 17:30:14 · 1208 阅读 · 0 评论 -
模拟浏览器进行爬取时遇到的一些问题记录
最近实验室要求在Chemistry Europe这个网站上爬取一些论文数据,过程中遇到了不少问题,在此记录一下。未解决的问题https://chemistry-europe.onlinelibrary.wiley.com/doi/full/10.1002/cctc.202101625这个网页,当我用requests去获得它的论文数据时,无论怎么设置headers和cookie,还是显示503错误,不知道是什么反爬的措施。在此把代码贴出来,期待能收获大佬的解答。import requestsfrom原创 2022-05-10 11:32:38 · 1144 阅读 · 2 评论 -
pip install
查看site-packages的位置:python2 -m site --user-site下载到指定site-packages中:pip3 install -t /Users/wuyang/Library/Python/2.7/lib/python/site-packages pdfminer原创 2022-04-25 13:25:03 · 718 阅读 · 0 评论 -
理解python中的GIL(全局解释器锁)
什么是GIL?GIL,全称Global Interpreter Lock,中文释义为全局解释器锁,它并不是python语言的一个特性,和python也没有任何关系,它是在实现一种python解释器(CPython)时引入的一个概念。就好比C++是一套语法标准,可以有GCC,Visual C++等等编译器一样,Python也可以通过CPython,Pypy,JPython等不同的编译器来运行。像其中的JPython就没有GIL。为什么会有GIL?python使用引用计数来进行内存管理,意味着在Pytho原创 2021-03-24 18:45:15 · 309 阅读 · 0 评论 -
极简美学——python
# 检查两个字符串的组成元素是不是一样的from collections import Counterdef similarConsistence(first, second): return Counter(first) == Counter(second)print(similarConsistence('abbc', 'cba')) # False# 内存占用import sysvariable = 3print(sys.getsizeof(variable)) # 28,原创 2021-03-14 13:54:02 · 99 阅读 · 0 评论 -
vscode写python时的错误提示和自动格式化
(1)在VScode中打开设置,搜索python.linting.flake8enabled(2)在Settings界面中勾选Whether to lint Python files using flake8(3)打开终端,下载flake8(错误提示)和autopep8(自动格式化)pip install flake8, autopep8安装完成后,重启vscode,右键选择自动格式化,ctrl+s保存,那些因为没有遵循pep8格式而报错的红线就会消失。...原创 2021-03-10 18:08:09 · 2049 阅读 · 1 评论 -
python操控excel实现办公自动化
读import xlrd""" 打开excel表格"""workbook = xlrd.open_workbook("测试.xlsx")print(workbook) # 结果:<xlrd.book.Book object at 0x000000000291B128>""" 获取所有sheet名称"""sheet_names = workbook.sheet_names()print(sheet_names) # 结果:['表1', '原创 2021-03-01 15:51:31 · 105 阅读 · 0 评论 -
从链家网上爬取租房数据并进行数据分析
数据爬取(scrapy)# 创建工程scrapy startproject lianjiacd lianjiascrapy genspider gethouse www.xxx.comitems.pyimport scrapyclass LianjiaItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() name = scrapy.Field(原创 2021-02-23 22:46:27 · 1303 阅读 · 1 评论 -
【python爬虫】初识scrapy框架
Scrapy 是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便~环境配置:pip install scrapyscrapy框架的初始化需要在Terminal中进行:(1)创建一个工程:scrapy startproject 工程名称(2)cd 工程名称(3)在spiders子目录中创建一个爬虫文件:scrapy genspider 文件名 www.xxx.com(4)接下来原创 2021-02-09 22:23:24 · 182 阅读 · 0 评论 -
【python爬虫】selenium模块
selenium模块是一个基于浏览器自动化的一个模块,它和我们之前接触的requests不太一样,requests提供模拟浏览器进行get或者post请求的一种自动爬取信息的方法,而selenium模块则是自动操控我们的浏览器进行一系列的操作。这样的好处就是可以便捷的获取网站中动态加载的数据,而且可以便捷实现模拟登录。...原创 2021-02-09 14:28:43 · 115 阅读 · 0 评论 -
【异步编程】aiohttp+多任务异步协程实现异步爬虫
按照之前博客中所提到的asyncio和爬虫知识,我们来写一个基于asyncio的异步爬虫来爬取我自己搭的一个简单的flask框架,每个路由sleep两秒当作网络IOimport timeimport asyncioimport requestsstart = time.time()urls = [ 'http://127.0.0.1:5000/hello', 'http://127.0.0.1:5000/thanks', 'http://127.0.0.1:5000/world', 'h原创 2021-02-08 21:45:15 · 332 阅读 · 0 评论 -
【python爬虫】数据解析
数据解析分类:正则bs4xpath数据解析原理概述:解析的局部的文本内容都会在标签中间或者标签对应的属性中进行存储一、正则常用正则:正则示例:这里要记录我走过的一个大坑我第一次用正则来进行数据解析的时候,是拿新浪图片这个网站开刀的(http://news.sina.com.cn/zt_d/street/),我想爬取这个页面中所有的“月选作品”图片,于是就右键检查找到对应图片的代码,是这样的:<img node-type="img" style="width: 100%;he原创 2021-02-07 11:45:16 · 269 阅读 · 0 评论 -
【python】日志文件
import loggingfrom logging.handlers import RotatingFileHandlerdef log_file(): # 设置日志的记录等级为DEBUG,DEBUG<INFO<WARNING<ERROR logging.basicConfig(level=logging.DEBUG) # 设置后大于等于该级别的信息都会输出 # 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小,保存的日志文件的个数上限 file_原创 2021-02-05 22:55:48 · 113 阅读 · 0 评论 -
【python爬虫】两个简单的小例子
1.爬取百度的搜索结果import requestsurl = 'http://www.baidu.com/s'value = input('Search:')headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'}param = { 'wd' : va原创 2021-02-04 21:50:10 · 73 阅读 · 0 评论 -
【python】迭代器和生成器
迭代器python中可被迭代的类型有:list、tuple、string、set、dict、bytes如何判断一个对象能不能被迭代呢?from collections.abc import Iterablemy_list = [1, 2, 3]print(isinstance(my_list, Iterable))自制迭代器:my_list = [1, 2, 3]it = iter(my_list)print(next(it))print(next(it))print(next(原创 2021-02-04 16:46:42 · 46 阅读 · 0 评论 -
【异步编程】(二)上手asyncio
事件循环理解成一个死循环,去检测并执行某些代码协程函数和协程对象比如:async def func():这样定义的一个函数就是协程函数执行协程函数得到的对象叫做协程对象:result = func(),注意这样执行只会生成对象,而不会执行func()函数的内部代码那么怎样才能执行它的内部代码呢,这就需要把协程对象交给事件循环去执行:import asyncioasync def func(): print(1)result = func()loop = asyncio.ge原创 2021-02-04 15:59:38 · 88 阅读 · 0 评论 -
【异步编程】(一)协程
协程(coroutine)不是计算机提供的,而是程序员人为创造的。协程又被称为微线程,是一种用户态的上下文切换技术。简而言之,就是通过一个线程实现代码块之间的相互切换执行。greenlet实现协程pip install greenletfrom greenlet import greenletdef func1(): print(1) gr2.switch() print(2) gr2.switch() print(3) gr2.switch()原创 2021-02-04 12:36:29 · 198 阅读 · 0 评论 -
【Python】设计模式之装饰器
我们先来看一个小例子:def f1(): print("This is f1")def f2(): print("This is f2")f1()f2()代码中定义了两个函数f1和f2,然后调用它们,结果显而易见。突然我们有了一个新的需求,每个功能的最开始我们需要做一个登录检查,怎么办?这是一种方法:def f1(): print("login check") print("This is f1")def f2(): print("login原创 2021-02-03 22:33:02 · 58 阅读 · 0 评论 -
【python】socket编程(UDP/TCP)和http服务器
服务端:''' UDP# 创建import sockets = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 绑定s.bind(('192.168.0.105', 9000)) # 绑定的是本机的地址和端口# 接收# data, address = s.recvfrom(1024) # recvfrom是一个阻塞的方法# print("从IP地址为{},端口号为{}的地方接收到数据{}".format(address[0], add原创 2021-02-02 20:31:39 · 184 阅读 · 0 评论 -
【python】if not语句
我们知道,在python中if语句是用来做判断的,if X:语句中,如果X为True,则执行:后面的句子;如果X为False,则跳过:后的句子。现在我们在if和X中间加上一个not,if not X:,那么情况就恰好相反了,如果X为False,则执行:后面的句子;如果X为True,则跳过:后的句子。但是这里要注意的是,如果我们有时候仅仅是要判断一下X是不是None的时候,是不推荐用这条语句的,因为在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都原创 2021-02-02 10:24:13 · 3490 阅读 · 1 评论 -
【python】使用virtualenvwrapper工具管理虚拟环境
环境centOS7.3过程(1) 安装virtualenv sudo pip3 install virtualenv(2) 安装virtualenvwrapper sudo pip3 install virtualenvwrapper(3) 执行virtualenvwrapper.sh文件 cd /usr/local/bin ls source virtualenvwrapper.sh(4) 在.bashrc文件中加入如下内容 export VIRTUALENVWRAPPER_原创 2021-01-27 19:14:46 · 137 阅读 · 1 评论