爬蟲——爬取貴陽房價(Python實現)
#================== 匯入相關庫 ==================================
from bs4 import BeautifulSoup
import numpy as np
import requests
from requests.exceptions import RequestException
import pandas as pd
#============= 讀取網頁 =========================================
def craw(url,page):
try:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"}
html1 = requests.request("GET", url, headers=headers,timeout=10)
html1.encoding ='utf-8' # 加編碼,重要!轉換為字串編碼, read() 得到的是 byte 格式的
html=html1.text
return html
except RequestException:# 其他問題
print(' 第 {0} 讀取網頁失敗 '.format(page))
return None
#========== 解析網頁並儲存資料到表格 ======================
def pase_page(url,page):
html=craw(url,page)
html = str(html)
if html is not None:
soup = BeautifulSoup(html, 'lxml')
"-- 先確定房子資訊,即 li 標籤列表 --"
houses=soup.select('.resblock-list-wrapper li')# 房子列表
"-- 再確定每個房子的資訊 --"
for j in range(len(houses)):# 遍歷每一個房子
house=houses[j]
" 名字 "
recommend_project=house.select('.resblock-name a.name')
recommend_project=[i.get_text()for i in recommend_project]# 名字 英華天元,斌鑫江南御府 ...
recommend_project=' '.join(recommend_project)
#print(recommend_project)
" 型別 "
house_type=house.select('.resblock-name span.resblock-type')
house_type=[i.get_text()for i in house_type]# 寫字樓 , 底商 ...
house_type=' '.join(house_type)
#print(house_type)
" 銷售狀態 "
sale_status = house.select('.resblock-name span.sale-status')
sale_status=[i.get_text()for i in sale_status]# 在售 , 在售 , 售罄 , 在售 ...
sale_status=' '.join(sale_status)
#print(sale_status)
" 大地址 "
big_address=house.select('.resblock-location span')
big_address=[i.get_text()for i in big_address]#
big_address=''.join(big_address)
#print(big_address)
" 具體地址 "
small_address=house.select('.resblock-location a')
small_address=[i.get_text()for i in small_address]#
small_address=' '.join(small_address)
#print(small_address)
" 優勢。 "
advantage=house.select('.resblock-tag span')
advantage=[i.get_text()for i in advantage]#
advantage=' '.join(advantage)
#print(advantage)
" 均價:多少 1 平 "
average_price=house.select('.resblock-price .main-price .number')
average_price=[i.get_text()for i in average_price]#16000,25000, 價格待定 ..
average_price=' '.join(average_price)
#print(average_price)
" 總價 , 單位萬 "
total_price=house.select('.resblock-price .second')
total_price=[i.get_text()for i in total_price]# 總價 400 萬 / 套,總價 100 萬 / 套 '...
total_price=' '.join(total_price)
#print(total_price)
#===================== 寫入表格 =================================================
information = [recommend_project, house_type, sale_status,big_address,small_address,advantage,average_price,total_price]
information = np.array(information)
information = information.reshape(-1, 8)
information = 外匯跟單gendan5.compd.DataFrame(information, columns=[' 名稱 ', ' 型別 ', ' 銷售狀態 ',' 大地址 ',' 具體地址 ',' 優勢 ',' 均價 ',' 總價 '])
information.to_csv(' 貴陽房價 .csv', mode='a+', index=False, header=False) # mode='a+' 追加寫入
print(' 第 {0} 頁儲存資料成功 '.format(page))
else:
print(' 解析失敗 ')
#================== 雙執行緒 =====================================
import threading
for i in range(1,100,2):# 遍歷網頁 1-101
url1="(i)+"/"
url2 = " + str(i+1) + "/"
t1 = threading.Thread(target=pase_page, args=(url1,i))# 執行緒 1
t2 = threading.Thread(target=pase_page, args=(url2,i+1))# 執行緒 2
t1.start()
t2.start()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2855035/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python實現微博爬蟲,爬取新浪微博Python爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- python 爬蟲 實現增量去重和定時爬取例項Python爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- Python爬蟲實踐--爬取網易雲音樂Python爬蟲
- Python爬蟲實戰詳解:爬取圖片之家Python爬蟲
- 房產資料爬取、智慧財產權資料爬取、企業工商資料爬取、抖音直播間資料python爬蟲爬取Python爬蟲
- python 爬蟲 爬取 learnku 精華文章Python爬蟲
- Python爬蟲入門教程 50-100 Python3爬蟲爬取VIP視訊-Python爬蟲6操作Python爬蟲
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲
- Python爬蟲教程-05-python爬蟲實現百度翻譯Python爬蟲
- python爬蟲——爬取大學排名資訊Python爬蟲
- Python爬蟲—爬取某網站圖片Python爬蟲網站
- python爬蟲--爬取鏈家租房資訊Python爬蟲
- python 爬蟲 1 爬取酷狗音樂Python爬蟲
- 【Python爬蟲】正則爬取趕集網Python爬蟲
- Python爬蟲實戰一:爬取csdn學院所有課程名、價格和課時Python爬蟲
- Python爬蟲是如何實現的?Python爬蟲
- python實現selenium網路爬蟲Python爬蟲
- python的爬蟲功能如何實現Python爬蟲
- Python爬蟲的兩套解析方法和四種爬蟲實現Python爬蟲
- python爬蟲實戰:爬取西刺代理的代理ip(二)Python爬蟲
- Python爬蟲實戰案例-爬取幣世界標紅快訊Python爬蟲
- python爬蟲實戰,爬蟲之路,永無止境Python爬蟲
- Python 爬蟲實戰Python爬蟲
- Python爬蟲入門【5】:27270圖片爬取Python爬蟲
- Python 第一個爬蟲,爬取 147 小說Python爬蟲
- 小白學 Python 爬蟲(25):爬取股票資訊Python爬蟲
- Python爬蟲:爬取instagram,破解js加密引數Python爬蟲JS加密
- python網路爬蟲--爬取淘寶聯盟Python爬蟲
- python例項,python網路爬蟲爬取大學排名!Python爬蟲
- Python爬蟲教程-06-爬蟲實現百度翻譯(requests)Python爬蟲
- python爬蟲-33個Python爬蟲專案實戰(推薦)Python爬蟲
- Python 爬蟲IP代理池的實現Python爬蟲
- 爬蟲之股票定向爬取爬蟲
- python就是爬蟲嗎-python就是爬蟲嗎Python爬蟲
- Python爬蟲——批次爬取douyin影片,下載到本地Python爬蟲
- 用PYTHON爬蟲簡單爬取網路小說Python爬蟲