零零杂杂的学习记录

InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised.解决办法

证书不安全



import urllib3

urllib3.disable_warnings()

使用re正则表达式匹配时的错误

File “C:\Python35\lib\re.py”, line 213, in findall

return _compile(pattern, flags).findall(string)

TypeError: cannot use a string pattern on a bytes-like object

出错的主要原因是因为:

TypeError: can’t use a string pattern on a bytes-like object.

html用decode(‘utf-8’)进行解码,由bytes变成string。

py3的urlopen返回的不是string是bytes。

Python中append与extend的用法区别

append整体添加

l1 = [1, 2, 3, 4, 5, ]
l1.append([6, 7, 8, 9, ])
# l1.append(*[6, 7, 8, 9, ]) #会报错
print(l1)
l1.extend([6, 7, 8, 9])
print(l1)

只能接受一个参数,如果出现打散的情况,还是会被识别成多个参数,因为程序执行执行是从左到右,从上倒下执行的,当出现时这个列表已经被打散了,因而,会被程序识别成被传入了多个参数

extend逐个添加

l1 = [1, 2, 3, 4, 5, ]
l1.extend([6, 7, 8, 9])
print(l1)
l1.extend('abc')
print(l1)
l1.extend('a') # 也是可迭代对象
print(l1)
# l1.extend(1) # 报错,不可迭代
print(l1)

# 输出

[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c']
[1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'a']
[1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'a']

extend在执行添加的时候,被传入的参数必须是可迭代对象,这样通过迭代就解决了同时传入多个参数的问题,如果你还不知道可迭代对象,放心,你很快就会知道的

BeautifulSoup中的select方法

在写css时,标签名不加任何修饰,类名前加点,id名前加 #,我们可以用类似的方法来筛选元素,用到的方法是soup.select(),返回类型是list。

(1).通过标签名查找

print(soup.select('title'))
# [The Dormouse's story]

print(soup.select('a'))
# [, Lacie, Tillie]

print(soup.select('b'))
# [The Dormouse's story]

(2).通过类名查找

Python爬虫用select方法提取的标签的属性带有空格的解决方法:
把空格的位置换成 . 就可以了



print soup.select('.sister')
# [, Lacie, Tillie]


(3).通过id名查找



print soup.select('#link1')
#[]


(4).组合查找

组合查找即和写class文件时,标签名与类名、id名进行的组合原理是一样的,例如查找p标签中,id等于link1的内容,二者需要空格分开。

print soup.select('p #link1')
#[]

直接子标签查找

print soup.select("head > title")
#[The Dormouse's story]

(5).属性查找

查找时还可以加入属性元素,属性需要用中括号括起来,注意属性和标签属于同一节点,所以中间不能加空格,否则会无法匹配到。

print soup.select("head > title")
#[The Dormouse's story]
 
print soup.select('a[href="http://example.com/elsie"]')
#[] 

属性仍然可以与上述查找方式组合,不在同一节点的空格隔开,同一节点的不加空格。

print soup.select('p a[href="http://example.com/elsie"]')
#[]

selenium+python自动化测试之页面元素定位

通过xpath相对路径查找元素方法

selenium 操作 获取动态页面数据

Python之excel文件追加内容

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from xlrd import open_workbook
from xlutils.copy import copy

r_xls = open_workbook("test.xls") # 读取excel文件
row = r_xls.sheets()[0].nrows # 获取已有的行数
excel = copy(r_xls) # 将xlrd的对象转化为xlwt的对象
table = excel.get_sheet(0) # 获取要操作的sheet

#对excel表追加一行内容
table.write(row, 0, '内容1') #括号内分别为行数、列数、内容
table.write(row, 1, '内容2')
table.write(row, 2, '内容3')

excel.save("test.xls") # 保存并覆盖文件

你可能感兴趣的:(零零杂杂的学习记录)