零零雜雜的學習記錄

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的用法區(qū)別

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)

只能接受一個參數,如果出現打散的情況,還是會被識別成多個參數,因為程序執(zhí)行執(zhí)行是從左到右,從上倒下執(zhí)行的,當出現時這個列表已經被打散了,因而,會被程序識別成被傳入了多個參數

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在執(zhí)行添加的時候,被傳入的參數必須是可迭代對象,這樣通過迭代就解決了同時傳入多個參數的問題,如果你還不知道可迭代對象,放心,你很快就會知道的

BeautifulSoup中的select方法

在寫css時,標簽名不加任何修飾,類名前加點,id名前加 #,我們可以用類似的方法來篩選元素,用到的方法是soup.select(),返回類型是list。

(1).通過標簽名查找

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

print(soup.select('a'))
# [<a class="sister"  id="link1"><!-- Elsie --></a>, <a class="sister"  id="link2">Lacie</a>, <a class="sister"  id="link3">Tillie</a>]

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

(2).通過類名查找

Python爬蟲用select方法提取的標簽的屬性帶有空格的解決方法:
把空格的位置換成 . 就可以了



print soup.select('.sister')
# [<a class="sister"  id="link1"><!-- Elsie --></a>, <a class="sister"  id="link2">Lacie</a>, <a class="sister"  id="link3">Tillie</a>]


(3).通過id名查找



print soup.select('#link1')
#[<a class="sister"  id="link1"><!-- Elsie --></a>]


(4).組合查找

組合查找即和寫class文件時,標簽名與類名、id名進行的組合原理是一樣的,例如查找p標簽中,id等于link1的內容,二者需要空格分開。

print soup.select('p #link1')
#[<a class="sister"  id="link1"><!-- Elsie --></a>]

直接子標簽查找

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

(5).屬性查找

查找時還可以加入屬性元素,屬性需要用中括號括起來,注意屬性和標簽屬于同一節(jié)點,所以中間不能加空格,否則會無法匹配到。

print soup.select("head > title")
#[<title>The Dormouse's story</title>]
 
print soup.select('a[)
#[<a class="sister"  id="link1"><!-- Elsie --></a>] 

屬性仍然可以與上述查找方式組合,不在同一節(jié)點的空格隔開,同一節(jié)點的不加空格。

print soup.select('p a[)
#[<a class="sister"  id="link1"><!-- Elsie --></a>]

selenium+python自動化測試之頁面元素定位

通過xpath相對路徑查找元素方法

selenium 操作 獲取動態(tài)頁面數據

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") # 保存并覆蓋文件
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容