欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
一小時(shí)入門(mén)Python爬蟲(chóng)!Python爬取租房數據實(shí)例分享

一、什么叫爬蟲(chóng)

爬蟲(chóng),又名“網(wǎng)絡(luò )爬蟲(chóng)”,就是能夠自動(dòng)訪(fǎng)問(wèn)互聯(lián)網(wǎng)并將網(wǎng)站內容下載下來(lái)的程序。它也是搜索引擎的基礎,像百度和GOOGLE都是憑借強大的網(wǎng)絡(luò )爬蟲(chóng),來(lái)檢索海量的互聯(lián)網(wǎng)信息的然后存儲到云端,為網(wǎng)友提供優(yōu)質(zhì)的搜索服務(wù)的。

二、爬蟲(chóng)有什么用

你可能會(huì )說(shuō),除了做搜索引擎的公司,學(xué)爬蟲(chóng)有什么用呢?哈哈,總算有人問(wèn)到點(diǎn)子上了。打個(gè)比方吧:企業(yè)A建了個(gè)用戶(hù)論壇,很多用戶(hù)在論壇上留言講自己的使用體驗等等?,F在A(yíng)需要了解用戶(hù)需求,分析用戶(hù)偏好,為下一輪產(chǎn)品迭代更新做準備。那么數據如何獲取,當然是需要爬蟲(chóng)軟件從論壇上獲取咯。所以除了百度、GOOGLE之外,很多企業(yè)都在高薪招聘爬蟲(chóng)工程師。你到任何招聘網(wǎng)站上搜“爬蟲(chóng)工程師”看看崗位數量和薪資范圍就懂爬蟲(chóng)有多熱門(mén)了。

三、爬蟲(chóng)的原理

發(fā)起請求:通過(guò)HTTP協(xié)議向目標站點(diǎn)發(fā)送請求(一個(gè)request),然后等待目標站點(diǎn)服務(wù)器的響應。

獲取響應內容:如果服務(wù)器能正常響應,會(huì )得到一個(gè)Response。Response的內容便是所要獲取的頁(yè)面內容,響應的內容可能有HTML,Json串,二進(jìn)制數據(如圖片視頻)等等。

解析內容:得到的內容可能是HTML,可以用正則表達式、網(wǎng)頁(yè)解析庫進(jìn)行解析;可能是Json,可以直接轉為Json對象解析;可能是二進(jìn)制數據,可以做保存或者進(jìn)一步的處理。

保存數據:數據解析完成后,將保存下來(lái)。既可以存為文本文檔、可以存到數據庫中。

四、Python爬蟲(chóng)實(shí)例

前面介紹了爬蟲(chóng)的定義、作用、原理等信息,相信有不少小伙伴已經(jīng)開(kāi)始對爬蟲(chóng)感興趣了,準備躍躍欲試呢。那現在就來(lái)上“干貨”,直接貼上一段簡(jiǎn)單Python爬蟲(chóng)的代碼:

1.前期準備工作:安裝Python環(huán)境、安裝PYCHARM軟件、安裝MYSQL數據庫、新建數據庫exam、在exam中建一張用于存放爬蟲(chóng)結果的表格house [SQL語(yǔ)句:create table house(price varchar(88),unit varchar(88),area varchar(88));]

2.爬蟲(chóng)的目標:爬取某租房網(wǎng)上首頁(yè)中所有鏈接里的房源的價(jià)格、單位及面積,然后將爬蟲(chóng)結構存到數據庫中。

3.爬蟲(chóng)源代碼:如下

import requests #請求 URL 頁(yè)面內容

from bs4 import BeautifulSoup #獲取頁(yè)面元素

import pymysql #鏈接數據庫

import time #時(shí)間函數

import lxml #解析庫(支持 HTML\XML 解析,支持 XPATH 解析)

#get_page 函數作用:通過(guò) requests 的 get 方法得到 url 鏈接的內容,再整合成BeautifulSoup 可以處理的格式

def get_page(url):

response = requests.get(url)

soup = BeautifulSoup(response.text, 'lxml')

return soup

#get_links 函數的作用:獲取列表頁(yè)所有租房鏈接

def get_links(link_url):

soup = get_page(link_url)

links_div = soup.find_all('div',class_='pic-panel')

links=[div.a.get('href') for div in links_div]

return links

#get_house_info 函數作用是:獲取某一個(gè)租房頁(yè)面的信息:價(jià)格、單位、面積等

def get_house_info(house_url):

soup = get_page(house_url)

price =soup.find('span',class_='total').text

unit = soup.find('span',class_='unit').text.strip()

area = 'test' #這里 area 字段我們自定義一個(gè) test 做測試

info = {

'價(jià)格':price,

'單位':unit,

'面積':area

}

return info

#數據庫的配置信息寫(xiě)到字典

DataBase ={

'host': '127.0.0.1',

'database': 'exam',

'user' : 'root',

'password' : 'root',

'charset' :'utf8mb4'}

#鏈接數據庫

def get_db(setting):

return pymysql.connect(**setting)

#向數據庫插入爬蟲(chóng)得到的數據

def insert(db,house):

values = ''{}','*2 + ''{}''

sql_values = values.format(house['價(jià)格'],house['單位'],house['面積'])

sql ='''

insert into house(price,unit,area) values({})

'''.format(sql_values)

cursor = db.cursor()

cursor.execute(sql)

db.commit()

#主程序流程:1.連接數據庫 2.得到各個(gè)房源信息的 URL 列表 3.FOR 循環(huán)從第一個(gè) URL 開(kāi)始獲取房源具體信息(價(jià)格等)4.一條一條地插入數據庫

db = get_db(DataBase)

links = get_links('https://bj.lianjia.com/zufang/')

for link in links:

time.sleep(2)

house = get_house_info(link)

insert(db,house)

首先,“工欲善其事必先利其器”,用 Python 寫(xiě)爬蟲(chóng)程序也是一樣的道理,寫(xiě)爬蟲(chóng)過(guò)程中需要導入各種庫文件,正是這些及其有用的庫文件幫我們完成了爬蟲(chóng)的大部分工作,我們只需要調取相關(guān)的借口函數即可。導入的格式就是 import 庫文件名。這里要注意的是在 PYCHARM 里安裝庫文件,可以通過(guò)光標放在庫文件名稱(chēng)上,同時(shí)按ctrl+alt 鍵的方式來(lái)安裝,也可以通過(guò)命令行(Pip install 庫文件名)的方式安裝,如果安裝失敗或者沒(méi)有安裝,那么后續爬蟲(chóng)程序肯定會(huì )報錯的。在這段代碼里,程序前五行都是導入相關(guān)的庫文件:requests 用于請求 URL 頁(yè)面內容;BeautifulSoup 用來(lái)解析頁(yè)面元素;pymysql 用于連接數據庫;time 包含各種時(shí)間函數;lxml 是一個(gè)解析庫,用于解析 HTML、XML 格式的文件,同時(shí)它也支持 XPATH 解析。

其次,我們從代碼最后的主程序開(kāi)始看整個(gè)爬蟲(chóng)流程:

通過(guò) get_db 函數連接數據庫。再深入到 get_db 函數內部,可以看到是通過(guò)調用Pymysql 的 connect 函數來(lái)實(shí)現數據庫的連接的,這里**seting 是 Python 收集關(guān)鍵字參數的一種方式,我們把數據庫的連接信息寫(xiě)到一個(gè)字典 DataBase 里了,將字典里的信息傳給 connect 做實(shí)參。

通過(guò) get_links 函數,獲取鏈家網(wǎng)租房首頁(yè)的所有房源的鏈接。所有房源的鏈接以列表形式存在 Links 里。get_links 函數先通過(guò) requests 請求得到鏈家網(wǎng)首頁(yè)頁(yè)面的內容,再通過(guò) BeautifuSoup 的接口來(lái)整理內容的格式,變成它可以處理的格式。最后通過(guò)電泳find_all 函數找到所有包含圖片的 div 樣式,再通過(guò)一個(gè) for 循環(huán)來(lái)獲得所有 div 樣式里包含的超鏈接頁(yè)簽(a)的內容(也就是 href 屬性的內容),所有超鏈接都存放在列表links 中。

通過(guò) FOR 循環(huán),來(lái)遍歷 links 中的所有鏈接(比如其中一個(gè)鏈接是:https://bj.lianjia.com/zufang/101101570737.html)

用和 2)同樣的方法,通過(guò)使用 find 函數進(jìn)行元素定位獲得 3)中鏈接里的價(jià)格、單位、面積信息,將這些信息寫(xiě)到一個(gè)字典 Info 里面。

調用 insert 函數將某一個(gè)鏈接里得到的 Info 信息寫(xiě)入數據庫的 house 表中去。深入到 insert 函數內部,我們可以知道它是通過(guò)數據庫的游標函數 cursor()來(lái)執行一段 SQL語(yǔ)句然后數據庫進(jìn)行 commit 操作來(lái)實(shí)現響應功能。這里 SQL 語(yǔ)句的寫(xiě)法比較特殊,用到了 format 函數來(lái)進(jìn)行格式化,這樣做是為了便于函數的復用。

最后,運行一下爬蟲(chóng)代碼,可以看到鏈家網(wǎng)的首頁(yè)所有房源的信息都寫(xiě)入到數據里了。(注:test 是我手動(dòng)指定的測試字符串)

后記:其實(shí) Python 爬蟲(chóng)并不難,熟悉整個(gè)爬蟲(chóng)流程之后,就是一些細節問(wèn)題需要注意,比如如何獲取頁(yè)面元素、如何構建 SQL 語(yǔ)句等等。遇到問(wèn)題不要慌,看 IDE 的提示就可以一個(gè)個(gè)地消滅 BUG,最終得到我們預期的結構。

內容來(lái)自騰訊新聞
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Python爬蟲(chóng)技巧:如何高效地爬取網(wǎng)絡(luò )小說(shuō)并保存到數據庫!
python爬蟲(chóng)系列(2)—— requests和BeautifulSoup
當科研遇見(jiàn)python
用Python爬蟲(chóng)爬取煎蛋網(wǎng)小姐姐的絕世美顏,我1T的硬盤(pán)都裝滿(mǎn)了
憑借這5步,我30分鐘學(xué)會(huì )了Python爬蟲(chóng)
使用 Python 爬取簡(jiǎn)書(shū)網(wǎng)的所有文章
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久