# Python 3 爬虫一些记录

news/2024/7/19 9:44:42 标签: 爬虫, python, 操作系统

目录

  • Python 3 & 爬虫一些记录
    • 交互模式和命令行模式
    • 函数积累
    • 语法积累
    • 列表和元组
    • 输入
    • 交互模式下输入多行
  • 爬虫
    • HTTP报文请求头User-Agent信息
    • 解析库pyquery

python-3-爬虫一些记录">Python 3 & 爬虫一些记录


  • Python任何数据都看成一个“对象”,变量指向数据对象,对变量赋值就是把数据和变量给关联起来。
  • Python的整数没有大小限制浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。
  • ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
  • ASCII只能表示英文和某些符号1字节,UniCode可以表示所有国家的语言2字节,ASCII前面加上一个字节的0就是Unicode,对于全英文文本使用Unicode浪费空间。
  • 解决方案:UTF-8智能编码,英文编码成1字节,汉字编码成3字节。。。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间

交互模式和命令行模式

  • 打开终端就进入了命令行模式
  • 命令行模式下可以输入Python3 进入Python3 的交互模式,也可以Python 1.py运行.py文件
  • 交互模式下只能输入一行代码,然后运行一行代码,并自动 打印结果输出(相当于启动了Python解释器,输入一行,执行一行),执行.py文件只能在命令行模式下
  • 命令行模式下下会自动把每一行代码结果打印出来,也就是命令行下默认最后加上print语句。但是直接运行python代码不会

函数积累

python">print中 r'' 表示里面的字符默认不转义

多行字符串'''...'''表示法,可以结合r一起使用,r'''...'''表示多行字符串不转义
print('''a
b
c''')
>>> a
b
c

strip()去除前后空格

lstrip()去除前面空格

rstrip()去除后面空格

str.title()首字母大写

str.upper()/lowwer()全字母大小写

str(int_name) int数据转化为字符串

字符串连接直接使用 + ,整数和字符串不能直接连接,整数强制
转化为字符串str(int)+"str";

数组使用[]括起来,直接打印数组会将方括号和引号逗号一起打印出来,下标访问。

数组a.[-1]返回倒数第一个元素,-2倒数第二个,依次类推

append(),pop(index)可以弹出指定位置的元素,del(a[0]),insert(1,x);
remove(元素)删除第一个匹配的
len(list) :获取数组长度

** 代表^幂符号

列表切片
print(a[1:3])输出指定位置的元素
a=values[1:3]使用切片能复制列表
a=values直接使用等号使两个列表指向同一个对象

语法积累

  • python里面根据缩进判断两行语句之间的关系,for循环没有大括号,:作为for的起始,4个空格缩进表示属于for循环的语句。

列表和元组

  • 列表可变,元组不可变,不能修改元组部分值,但是可以给元组重新赋值
  • 元组是特殊的列表,列表使用[],元组使用()
  • 将列表名作为条件表达式时,取的是列表的长度
  • 元组的不变是 “指向不变”,如果元组某元素指向了一个列表,列表元素可变,即使列表元素变了,元组的指向也没有改变
python">if(list):
    do something  //if list is not null,do something

输入

python">input(str):输入函数,接受一个参数,在输入前打印,将用户读入解读为字符串,使用int()函数转换

交互模式下输入多行

  • 代码后面添加;\

爬虫">爬虫

HTTP报文请求头User-Agent信息

  • 格式:Mozilla/5.0 (平台) 引擎版本 浏览器版本号
  • 其中平台可以是操作系统或者python库,一般爬虫请求HTTP报文默认显示平台为Python库

解析库pyquery

python">#巨坑:!!!!!!
doc=pq(url,parser='html')#最好指定解析器为HTML,默认为xml,碰到XHTML网页会解析出错

# 创建PyQuery对象(css选择器)
from pyquery import PyQuery as pq #从库中导入PyQuery类并且定义别名为pq

# 可以使用''''''来表示字符串,这种表示方法可以接受换行
html='''
<div id="container">
    <ul class="list">
        <li class='item-0'>first item </li>
        <li class='item-1'><a href="link2.html">second item< </li>
        <li class ='item-a active'><a href="link3.html">< span class ="bold"> third item </span></a></li> 
        <li class ="item-1 active"><a href ="link4.html"〉fourth item</a></li> 
        <li class ="item-0"><a href= "link5.html"> fifth item</a></li> 
    </ul>
 </div>
 '''

doc =pq(url='http://www.baidu.com') #doc为PyQuery对象
# doc=pq(filename='demo.html')从文件中创建pq对象

# 元素选择,''中位css选择器
print(doc('li')) #选择出所有的li标签,并且所有<li> </li>标签的内容加上li标签打印

# 选择器的结果也是pq对象
print(type(doc('li')))

# 更高级的元素选择  
print(doc('#container .lisr li'))# id标签#表示后面跟id名,class使用.表示后接名字,空格分隔
# 可以直接在''css选择器中使用空格分隔实现嵌套选择,无空格表示并列查询
python">r=requests.get(url) #访问网页,获取网页内容

r.encoding #获取当前对象的编码

rencoding='utf-8'  #使当前对象转化为utf-8形式,如果网页是utf-8,而当前对象不是utf-8,则直接输出会乱码

转载于:https://www.cnblogs.com/sstealer/p/11578643.html


http://www.niftyadmin.cn/n/1802451.html

相关文章

VM workstation 与 VM vSphere的区别 [转载]

在学完vSphere后&#xff0c;想起了VMware Workstation。这两个都是虚拟化的东西&#xff0c;这两者到底有什么本质的不同呢&#xff1f;顺着我的思路我开始将所学过的进行检索期望从中寻到一丝半点的线索。很快大脑中建立了两个对他们明显的标签 VMware Workstation&#xff1…

# MATLAB数据处理

目录 MATLAB数据处理数据归一化处理冒号的作用&#xff08;获取指定行列的数据&#xff09;MATLAB数据处理 mean(A,(b)) %均值函数&#xff0c;b为设置对哪一维上的数据进行处理&#xff0c;默认为第一维&#xff08;列&#xff09;&#xff0c;行为第二维 mean(A,2) %对每一行…

使用 ref 和 out 传递数组

与所有的 out 参数一样&#xff0c;在使用数组类型的 out 参数前必须先为其赋值&#xff0c;即必须由接受方为其赋值。例如&#xff1a;public static void MyMethod(out int[] arr) {arr new int[10]; // definite assignment of arr } 与所有的 ref 参数一样&#xff0c;…

# 正则表达式

正则表达式 明确给出字符表示精确匹配&#xff0c;其他的为模糊匹配 通用符&#xff1a; \d 匹配一个数字\w匹配一个数字或字母.匹配一个任意字符\s表示匹配一个空格转移字符加\量词&#xff1a;在通用符后面直接添加 *表示任意个字符&#xff08;0-..&#xff09;表示至少一个…

[BOI2007]Mokia 摩基亚

我才不会告诉你我cmp写错了&#xff0c;然后调了一年 CDQ分治模板题 一维时间&#xff0c;二三维x,y坐标 避免树状数组下标出现0炸掉&#xff0c;把跟长度有关的都1 答案用容斥原理即可&#xff08;类似于二维前缀和&#xff1f;&#xff09; 1 //LevenKoko2 #include<bits/…

如何在python 深度学习Keras中计算神经网络集成模型

原文链接&#xff1a;http://tecdat.cn/?p7227 神经网络的训练过程是一个挑战性的优化过程&#xff0c;通常无法收敛。 这可能意味着训练结束时的模型可能不是稳定的或表现最佳的权重集&#xff0c;无法用作最终模型。 解决此问题的一种方法是使用在训练运行结束时看到的多个模…

jenkins持续集成(二): jenkins+git+github搭建及代码持续集成,自动部署上线

https://blog.csdn.net/weixin_44221613/article/details/88068874转载于:https://www.cnblogs.com/lizhewei/p/11182413.html

OpenCv 012---视频文件读写

1 前备知识 null 2 所用到的主要OpenCv Class VideoCapture capture;capture.open("G:\\CVworkstudy\\program_wwx\\研习社140课时\\ZhaiZhigang140\\vtest.avi"); VideoWriter writer("G:\\CVworkstudy\\program_wwx\\研习社140课时\\ZhaiZhigang140\\test.avi…