準備工作:安裝python3環境、beautifulsoup4庫(
from urllib import request
req = request.urlopen(
"")print
(req.read(
).decode(
"utf-8"
))
(目的是不讓伺服器認為是爬蟲,若不帶此瀏覽器資訊,則可能會報錯)
req = request.request(url)
#此處url為某個**
req.add_header(key,value)
#key即user-agent,value即瀏覽器的版本資訊
resp = request.urlopen(req)
print
(resp.read(
).decode(
"utf-8"
))
from urllib import parse
postdata = parse.urlencode(
[(key1,val1)
,(key2,val2)
,(keyn,valn)
])
request.urlopen(req,data=postdata.encode(
"utf-8"))
#使用postdata傳送post請求
resp.status #得到請求狀態
resp.reason #得到伺服器的型別
#-*- coding:utf-8 -*-
from bs4 import beautifulsoup as bs
from urllib.request import urlopen
import re
import ssl
#獲取維基百科詞條資訊
ssl._create_default_https_context = ssl._create_unverified_context #全域性取消證書驗證
#請求url,並把結果用utf-8編碼
req = urlopen(
" page"
).read(
).decode(
"utf-8"
)#使用beautifulsoup去解析
soup = bs(req,
"html.parser"
)# print(soup)
#獲取所有href屬性以「/wiki/special」開頭的a標籤
urllist = soup.findall(
"a",href=re.
compile
("^/wiki/special"))
for url in urllist:
#去除以.jpg或.jpg結尾的鏈結
:#get_test()輸出標籤下的所有內容,包括子標籤的內容;
#string只輸出乙個內容,若該標籤有子標籤則輸出「none
print
(url.get_text()+
"----->"
+url[
"href"])
# print(url)
#引入開發包
import pymysql.cursors
#獲取資料庫鏈結
connection = pymysql.connect(host=
"localhost"
, user =
'root'
, password =
'123456'
, db =
'wikiurl'
, charset =
'utf8mb4'
)try
:#獲取會話指標
with connection.cursor(
)as cursor
#建立sql語句
sql =
"insert into `tablename`(`urlname`,`urlhref`) values(%s,%s)"
#執行sql語句
cursor.execute(sql,
(url.get_text(),
""+url[
"href"])
)#提交
connection.commit(
)finally
:#關閉
connection.close(
)
robots協議(機械人協議,也稱爬蟲協議)全稱是「網路爬蟲排除協議」,**通過robots協議告訴搜尋引擎哪些頁面可以抓取,哪些頁面不可以抓取。一般在主頁面下,如/robots.txt
disallow:不允許訪問
allow:允許訪問
參考:慕課網課程
2023年9月27日
Python多執行緒爬蟲簡單示例
python是支援多執行緒的,主要是通過thread和threading這兩個模組來實現的。thread模程式設計客棧塊是比較底層的模組,threading模組是對thread做了一些包裝的,可以更加方便的使用。雖然python的多執行緒受gil限制,並不是真正的多執行緒,但是對於i o密集型計算還...
Java簡單爬蟲示例
步驟簡介 獲取鏈結文字內容 urlconnection例項呼叫getinputstream 獲取輸入流,並返回輸入流 inputstream 物件,初始化給inputstreamreader,將位元組流轉換為字元流,並指定字符集編碼utf 8。bufferedreader從字元流中逐行讀取文字存入s...
python實現簡單爬蟲功能的示例
在我們日常上網瀏覽網頁的時候,經常會看到一些好看的,我們就希望把這些儲存 或者使用者用來做桌面桌布,或者用來做設計的素材。我們最常規的做法就是通過滑鼠右鍵,選擇另存為。但有些滑鼠右鍵的時候並沒有另存為選項,還有辦法就通過就是通過截圖工具擷取下來,但這樣就降低的清晰度。好吧 其實你很厲害的,右鍵檢視頁...