青客是5.15爬出来的,事实证明做完一个案例就写下来是很有必要的,因为才3天我就不记得当时的纠结了...心态太好也比较容易失忆的!
总之这个是比较好爬的,虽然它的代码写的有点怪,什么fR,easyCon之类,不过这些都是表象!
就是老老实实的用手把其中一个房源的列表li下面的都写下来,要爬的几个点:价格,描述,会员价用红笔划出来)
再老老实实的把每层结构都写下来。——我居然不记得[@class="..."]要用中括号括起来,被程工指出了。反正我也经常指出人家用了中文符号当英文这种错误,所以我很轻易的原谅了自己。
网站截图:
代码
#coding:utf-8
import requests
from lxml import etree
import random
url='http://hz.qk365.com/list/p1'
def getReqHeaders():
"""
功能:随机获取HTTP_User_Agent
"""
user_agents=[
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"]
user_agent = random.choice(user_agents)
req_headers={'User-Agent':user_agent}
return req_headers
html=requests.get(url,headers=getReqHeaders()).content
selector=etree.HTML(html)
infos=selector.xpath('//*[@class="easyList"]/li')
list_dict=[]
for info in infos:
item={}
price=info.xpath('div[@class="coverBox"]/em[@class="fR"]/b/text()')[0]
address=info.xpath('div[@class="easyCon"]/p[@class="easySub"]/text()')[0]
price2=info.xpath('div[@class="easyCon"]/div[@class="easyMember"]/span/i/text()')[0]
print price, ' ',address, ' ',price2
#item['name']=name
#item['address']=address
#item['price']=price
#list_dict.append(item)
#print list_dict
这里只是第一页,也没做城市列表。本来想收拾一下的,但已经失去挑战感了。就这样存稿吧。