溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python爬蟲代碼示例的方法

發(fā)布時間:2020-08-12 09:39:34 來源:億速云 閱讀:182 作者:小新 欄目:編程語言

這篇文章主要介紹python爬蟲代碼示例的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

python爬蟲代碼示例的方法:首先獲取瀏覽器信息,并使用urlencode生成post數(shù)據;然后安裝pymysql,并存儲數(shù)據到MySQL即可。

python爬蟲代碼示例的方法

python爬蟲代碼示例的方法:

1、urllib和BeautifuSoup

獲取瀏覽器信息

from urllib import request
req = request.urlopen("http://www.baidu.com")
print(req.read().decode("utf-8"))

模擬真實瀏覽器:攜帶user-Agent頭

(目的是不讓服務器認為是爬蟲,若不帶此瀏覽器信息,則可能會報錯)

req = request.Request(url) #此處url為某個網址
req.add_header(key,value)  #key即user-Agent,value即瀏覽器的版本信息
resp = request.urlopen(req)
print(resp.read().decode("utf-8"))

使用POST

導入urllib庫下面的parse

from urllib import parse

使用urlencode生成post數(shù)據

postData = parse.urlencode([
    (key1,val1),
    (key2,val2),
    (keyn,valn)
])

使用post

request.urlopen(req,data=postData.encode("utf-8")) #使用postData發(fā)送post請求
resp.status  #得到請求狀態(tài)
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("https://en.wikipedia.org/wiki/Main 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結尾的鏈接
if not re.search("\.(jpg|JPG)$",url["href"]):
#get_test()輸出標簽下的所有內容,包括子標簽的內容;
#string只輸出一個內容,若該標簽有子標簽則輸出“none
print(url.get_text()+"----->"+url["href"])
# print(url)

2、存儲數(shù)據到MySQL

安裝pymysql

通過pip安裝:

$ pip install pymysql

或者通過安裝文件:

$ python setup.py install

使用

#引入開發(fā)包
import pymysql.cursors
#獲取數(shù)據庫鏈接
connection = pymysql.connect(host="localhost",
user = 'root',
password = '123456',
db ='wikiurl',
charset = 'utf8mb4')
try:
#獲取會話指針
with connection.cursor() as cursor
#創(chuàng)建sql語句
sql = "insert into `tableName`(`urlname`,`urlhref`) values(%s,%s)"
#執(zhí)行SQL語句
cursor.execute(sql,(url.get_text(),"https://en.wikipedia.org"+url["href"]))
#提交
connection.commit()
finally:
#關閉
connection.close()

3、爬蟲注意事項

Robots協(xié)議(機器人協(xié)議,也稱爬蟲協(xié)議)全稱是“網絡爬蟲排除協(xié)議”,網站通過Robots協(xié)議告訴搜索引擎哪些頁面可以抓取,哪些頁面不可以抓取。一般在主頁面下,如https://en.wikipedia.org/robots.txt

Disallow:不允許訪問
allow:允許訪問

以上是python爬蟲代碼示例的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI