利用python爬取安居客租房信息
今天小編給大家分享一下python3利用selenium爬取安居客房租信息的爬蟲,有源碼和思路分析。
首先說一下思路:
selenium有點擊和輸入模擬,所以打開鏈接後----->想網頁輸入想查詢的城市------>到了相應的頁面再點擊相應的按鈕------>獲取頁面中所有信息------>點擊「下一頁」------>循環獲取網頁內容。
1.寫好注釋,導入模塊。
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
#導入模塊
fromseleniumimportwebdriver
importtime
importos
importrandom
importdatetime
2.查詢租房信息,該網站只提供50頁的租房信息,所以爬取50頁,由於第50頁時,點擊下一頁無反應,會報錯,所以添加一個異常處理。 PS:英語水平有限,只好拼音代替,還望各位不要嫌棄,目前正在努力學習英語中,以後會逐漸改成純英文。#查詢租房信息
#查詢租房信息
#查詢租房信息def search_home(city): url = "https://www.anjuke.com/sy-city.html" browser = webdriver.Chrome() browser.get(url) #點擊相應的按鈕。。。。。。 browser.find_element_by_link_text(city).click() browser.find_element_by_link_text("租 房").click() #創建列表,用來存儲爬取到的信息。 jia_ge = [] title = [] xin_xi = [] di_zhi = [] n = 1#循環獲得每一頁的信息,只能爬取50頁。 while n
3. 寫入文本文件中。
由於作者用linux寫的爬蟲,所以文件路徑與windows不一樣。
os.mkdir()是創建一個空文件夾,之所以用了一個異常處理,是因為在寫爬蟲時需要調試一下,如果文件已存在會報錯。
#寫入文件中def write_txt(tuples,city): file = "/home/123456/桌面/%s" % city try: os.mkdir(file) except: pass with open("%s/%s.txt" % (file,city),"w") as txt: for wa,wb,wc,wd in zip(tuples[0],tuples[1],tuples[2],tuples[3]): txt.write("標題: %s, 信息: %s, 地址: %s, 價格: %s
" % (wa,wb,wc,wd)) return txt.close()
4.運行程序。
最後將以上幾塊代碼拼起來就能運行了,此代碼還可以進行一些變動,查詢房價等信息。
TAG:網路安全你我同行 |