寫爬蟲時候記錄的一些記錄和框架

2021-10-03 16:44:47 字數 2240 閱讀 5752

爬蟲**獲取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 授權...