天天看點

python找房源_python抓取貝殼房源資訊

分析了貝殼的房源資訊資料,發現位址連結的參數傳遞是有規律的

a3 實際表示的

python找房源_python抓取貝殼房源資訊

l4 表示的是

python找房源_python抓取貝殼房源資訊

然後 将複合條件拼成一個字元串,帶過去。看着真的很像加密過的。贊

import os, re

import requests

import random

import time

from bs4 import BeautifulSoup

user_agent_list = [

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",

"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",

"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",

"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",

"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",

"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",

"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",

"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",

"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",

"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",

"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",

"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",

"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"

]

UA = random.choice(user_agent_list) ##從self.user_agent_list中随機取出一個字元串

headers = {'User-Agent': UA} ##構造成一個完整的User-Agent (UA代表的是上面随機取出來的字元串哦)

url = 'https://tj.ke.com/chengjiao/pg'

for x in range(2,41):

time.sleep(random.randint(2,5))

with requests.get(url+str(x)+'ddo22p7', headers=headers, timeout=5) as response:

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

# print(soup.title.text) # 列印title

li_list = soup.find('ul', class_='listContent').find_all('li')

# print(li_list)

for li_quick in li_list:

try:

#取成交日期

dealDate=li_quick.find('div',class_='dealDate').get_text().strip()

#取名稱

title=li_quick.find('div',class_='title').a.get_text().strip()

#取總價

totalPrice=li_quick.find('div',class_='totalPrice').find('span',class_='number').get_text().strip()

#取單價

unitPrice=li_quick.find('div',class_='unitPrice').find('span',class_='number').get_text().strip()

#取位置資訊

positionInfo=li_quick.find('div',class_='positionInfo').get_text().strip()

#取成交周期

dealCycleTxt0=li_quick.find('div',class_='dealCycleeInfo').find('span',class_='dealCycleTxt').find_all('span')[0].get_text().strip()

#取挂牌價格

dealCycleTxt1=li_quick.find('div',class_='dealCycleeInfo').find('span',class_='dealCycleTxt').find_all('span')[1].get_text().strip()

except:

continue

finally:

print(title,',',dealDate,',',totalPrice,',',unitPrice,',',dealCycleTxt0,',',dealCycleTxt1,',',positionInfo)