爬蟲**獲取url狀態碼基本框架:
import requests
defgethtmltext
(url)
:try
: r=requests.get(url,timeout=30)
r.raise_for_status(
)#如果狀態碼不是200,引發httperror異常
return r.text
except
:return
"產生異常"
)二進位制檔案儲存的基本路徑框架:
import requests
import os
url=
"***xx"
root=
"d://pics//"
path=root+url.split(
'/')[-
1]try:
ifnot os.path.exists(root)
: os.mkdir(root)
ifnot os.path.exists(path)
: r=requests.get(url)
with
open
( path,
'wb'
)as f:
f.write(r.content)
f.close(
)print
("檔案儲存成功"
)else
:print
("檔案已存在"
)except
:print
("檔案儲存失敗"
) 寫入空檔案:
f_path=r'c:\users\lph\desktop\my.txt'
with
open
(f_path,
'w')
as f:
f.write(
'i love programming!'
)
實參『w』告訴python以寫入模式開啟檔案。開啟檔案時,可以指定讀取方式(『r』:讀取 『w』:寫入 『a』 附加 『r+』 讀取和寫入 )預設為唯讀模式。
若寫入的檔案不存在,函式open()將自動建立。以寫入模式開啟檔案時,注意如果檔案已存在,python將在返回檔案物件前清空檔案。若不想清空,可以以追加的方式建立。python只將字串寫入文字檔案。要將數值資料儲存到文字檔案中,必須先使用函式str()將其轉換為字串格式。讀出的也是字串.
關於ip的爬取和使用,**ip的使用在urllib和request兩個庫中規則也有一些不同,因此使用時應當加以辨別,**ip的使用方式多種,可以爬取國內**ip**,也可以爬取埠等(目前不熟悉),但是**ip爬取後最好進行驗證,否則在使用過程中可能出現無效的情況。
txt文字的使用與二進位制檔案有一些不用,』a』和』w』都為寫入,但是』a』不會覆蓋掉原本已經存在的資訊。這一點非常重要。
當我們開啟txt檔案時,比如ips=open(path,』r』),ip=ips.readlins()這時候獲得的是乙個列表,而若該列表是以readlines讀取的,在讀取時將會包含換行符,這將會影響讀取資訊操作,可用for迴圈遍歷並用strip()函式將換行符去掉。
url構造迴圈簡化版:start_url=[『 for i in range(1,20)]
從列表中隨機抽取乙個元素的方法,首先引入
from random import choice, s=choice(列表)即可
python中的字典和json有一些不同,字典為單引號,簡單來說js是一種儲存資料的格式
另外requests構造中資料請求為params,輸入錯誤無法進行。
正規表示式庫是python中自帶的,能夠隨時呼叫,而beautifulsoup和xpath庫則是第三方庫,通過學習爬蟲,反而我對於解釋型語言以及html文字編輯有了比較初步的認識。
所謂網路爬蟲,大部分是通過解釋html格式中所包含的鏈結,文字,從而獲取相應資訊的技術。
beautifulsoup庫,我個人使用的話我認為是比較全面的乙個解析方式,解析html比較全面,但是邏輯不夠清晰,搜尋資訊方式比較廣泛,而且xpath,比較注重邏輯,比如逐行逐個遍歷節點,速度較快。
正規表示式庫我認為相比於上述兩個庫最大的優點是,能夠運用自定義格式獲取自己想要的資訊,非常靈活.
關於爬蟲的一些記錄
普通的文字型爬蟲就不說了,這裡主要說一下在爬取有js指令碼和驗證碼的一些內容時,遇到的坑。作業系統的選擇 由於爬蟲 資訊分析ai web介面都部屬在centos上,且系統部署的最優選擇還是centos。爬蟲方面,文字型爬蟲是基礎,模擬瀏覽器也是必須的。目前模擬瀏覽器就三樣,firefox chrom...
記錄一些爬蟲的小細節
1.使用beautifulsoup初始化用requests獲取到的html文字時,有時候會出現亂碼現象,只需要指定response.encoding utf 8 即可 2.有時候使用selenium定位元素時,定位 沒有問題,但是提示定位不到,這是因為頁面中存在多個iframe標籤,相當於多個子頁面...
記錄一些WPF
1.exception 使用該資訊可以確定如何處理異常。handled 屬性設定為true2.3.invoke 是同步操作,而 begininvoke 是非同步操作 4.pack uri 方案使用 pack 作為它的方案,並且包含兩個元件 授權和路徑。以下是 pack uri 的格式。pack 授權...