通過輸入國內,國外,城市名只能抓取13頁的資訊。。。木鳥短租可以嘗試抓取,主要裡面有文章
import requests,re,time
from lxml import etree
#城市列表:
##獲取每個城市的url
url = '' #獲取城市名稱的鏈結
ser = input('輸入你要查詢的地區(1:國內;2:海外):') #輸入你你要查詢是國內的短租房還是海外的短租房
html = requests.get(url).text #通過上面提供的url來爬取每個省份的拼音
def choose_area(): #判斷你需要查詢的是國內的還是海外的,並輸出相應的內容
city_tup = re.compile('citys[[0-9]\d+]=new array(.*?);').findall(html)
for city_name in city_tup:
city_time = re.compile('[0-9]\d*:[0-9]\d*').findall(city_name)
if ser == '1':
if len(city_time) == 0:
city = re.compile('[\u4e00-\u9fa5]+').findall(city_name)[0] #城市名稱
city_jc = re.compile('[a-z]\w*').findall(city_name)[1] #城市拼音
city_zf = re.compile('[0-9]\d*').findall(city_name)[0] #城市租房數量
city_dic =
yield city_dic
else:
pass
elif ser == '2':
if len(city_time) != 0:
city = re.compile('[\u4e00-\u9fa5]+').findall(city_name)[0]
city_jc = re.compile('[a-z]\w*').findall(city_name)[1]
city_zf = re.compile('[0-9]\d*').findall(city_name)[0]
city_dic =
yield city_dic
else:
pass
def get_url(city_jc,page): #提供省份的名稱和頁碼來構建需要爬取的url
#根據你提供的省份名稱來判斷,這個省份有多少**,但是每個省份的**只顯示13頁的資料,所有做個判斷,超過了的話就只顯示13頁,沒有超過的話就有幾頁就顯示幾頁
def url_list(city_name):
# city_name = input('輸入你要查詢的城市名稱:')
for city in choose_area():
if city_name in city.keys():
if int(int(city[city_name][1])/24) > 13:
for page in range(1,14):
url = get_url(city[city_name][0],page)
yield url
elif int(int(city[city_name][1])/24) <= 13:
sum_page = int(int(city[city_name][1])/24) <= 13
for page in range(1,sum_page + 1):
url = get_url(city[city_name][0], page)
yield url
def get_links(url):
wb_data = requests.get(url, headers=headers)
href=etree.html(wb_data.content)
href_list=href.xpath('//*[@id="page_list"]/ul/li')
for info in href_list:
link = info.xpath('a/@href')[0].strip()
get_info(link)
def ***_is(class_name):
if class_name == 'member_girl_ico':
return '女'
else:
return '男'
def get_info(url):
html_data = requests.get(url, headers=headers)
selector = etree.html(html_data.text)
item = {}
item['title'] = selector.xpath('//div[@class="wrap clearfix con_bg"]/div[1]/div[1]/h4/em/text()')[0].strip()
item['address'] = selector.xpath('//div[@class="pho_info"]/p/span/text()')[0].strip()
item['price'] = selector.xpath('//*[@id="pricepart"]/div[1]/span/text()')[0].strip()
item['img'] = selector.xpath('//*[@id="floatrightbox"]/div[3]/div[@class="member_pic"]/a/img/@src')[0].strip()
item['***'] = ***_is(selector.xpath('//*[@class="w_240"]/h6/span/@class')[0].strip())
print(item)
if __name__ == '__main__':
city = input('輸入你想爬取的城市名稱:')
for url in url_list(city): # 通過傳入上海的,獲取上海的短租房的所有頁面url
print(url)
get_links(url)
time.sleep(2)
爬蟲專案1 爬取小豬短租資料
看了這個大神的部落格 爬蟲專案合集,自己也動手實踐一下 請求 requests 解析 xpath 非常簡單,直接放 import requests from lxml import etree source url 以北京地區為例 headers 請求頭比較簡單,如果被識別可以換為更複雜的 多加幾個...
小豬短租住房資訊爬取
爬蟲練習 對小豬短租的住房資訊爬取 import requests 小豬短租住房詳情爬取 from bs4 import beautifulsoup url requests.get soup beautifulsoup url.text,lxml titles soup.select div.wr...
Python爬蟲入門 5 爬取小豬短租租房資訊
小豬短租是乙個租房 上面有很多優質的民宿出租資訊,下面我們以成都地區的租房資訊為例,來嘗試爬取這些資料。小豬短租 成都 頁面 按照慣例,先來爬下標題試試水,找到標題,複製xpath。多複製幾個房屋的標題 xpath 進行對比 id page list ul li 1 div 2 div a span...