您好,登錄后才能下訂單哦!
這篇文章主要介紹python爬蟲代碼示例的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
python爬蟲代碼示例的方法:首先獲取瀏覽器信息,并使用urlencode生成post數據;然后安裝pymysql,并存儲數據到MySQL即可。
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數據
postData = parse.urlencode([ (key1,val1), (key2,val2), (keyn,valn) ])
使用post
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("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、存儲數據到MySQL
安裝pymysql
通過pip安裝:
$ pip install pymysql
或者通過安裝文件:
$ python setup.py install
使用
#引入開發包 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(),"https://en.wikipedia.org"+url["href"])) #提交 connection.commit() finally: #關閉 connection.close()
3、爬蟲注意事項
Robots協議(機器人協議,也稱爬蟲協議)全稱是“網絡爬蟲排除協議”,網站通過Robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不可以抓取。一般在主頁面下,如https://en.wikipedia.org/robots.txt
Disallow:不允許訪問 allow:允許訪問
以上是python爬蟲代碼示例的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。