当前位置: 首页 > wzjs >正文

怎么判断一个网站做的好不好网站建设行业产业链分析

怎么判断一个网站做的好不好,网站建设行业产业链分析,简述网站建设及维护的全过程,翻墙到国外网站怎么做一、淄博链家二手房网站地址 urlhttps://zb.lianjia.com/ershoufang/ 二、基本知识点总结 这个代码是一个使用 Selenium 和 lxml 库编写的网络爬虫,用于从链家网(Lianjia)的二手房列表页面中提取房屋信息。 代码结构 导入库: …

一、淄博链家二手房网站地址

url=https://zb.lianjia.com/ershoufang/

二、基本知识点总结 

这个代码是一个使用 Selenium 和 lxml 库编写的网络爬虫,用于从链家网(Lianjia)的二手房列表页面中提取房屋信息。

代码结构

  1. 导入库

    • time:用于控制时间延迟。

    • lxml.etree:用于解析 HTML 文档并提取数据。

    • selenium:用于自动化浏览器操作,模拟用户点击和页面跳转。

    • selenium.webdriver:提供浏览器驱动(如 ChromeDriver)。

    • selenium.webdriver.support.ui.WebDriverWait:用于等待页面元素加载。

    • selenium.webdriver.common.by.By:用于定位页面元素。

  2. 配置 ChromeDriver

    • 指定 ChromeDriver 的路径,并初始化 Service 对象。

  3. 解析详情页

    • parse_detail_page(link):打开详情页,等待页面加载完成后调用 parse_detail_info 提取信息,然后关闭详情页并返回列表页。

  4. 解析详情页信息

    • parse_detail_info(source):使用 lxml.etree 解析 HTML 源码,提取价格、标题、地址、面积和户型等信息。

  5. 主循环

    • 打开链家网的二手房列表页面。

    • 使用 lxml.etree 解析列表页,获取每个房源的链接。

    • 遍历每个房源链接,调用 parse_detail_page 提取详细信息。

    • 点击“下一页”按钮,重复上述过程,直到没有下一页为止。

  6. 关闭浏览器

    • 在所有操作完成后,关闭浏览器。


基本知识点

  1. Selenium

    • Selenium 是一个用于自动化浏览器操作的工具,常用于网页测试和爬虫。

    • 通过 webdriver.Chrome 启动 Chrome 浏览器。

    • 使用 driver.get(url) 打开指定网页。

    • 使用 driver.execute_script 执行 JavaScript 代码(如打开新标签页)。

    • 使用 driver.switch_to.window 切换浏览器标签页。

  2. 页面元素定位

    • 使用 WebDriverWait 和 EC.presence_of_element_located 等待页面元素加载完成。

    • 使用 By.XPATH 或 By.CLASS_NAME 等方式定位页面元素。

    • 使用 driver.find_element 或 driver.find_elements 查找单个或多个元素。

  3. XPath

    • XPath 是一种用于在 XML 或 HTML 文档中定位节点的语言。

    • 代码中使用 XPath 提取房源链接、价格、标题、地址等信息。

    • 例如://div[@class="price-container"]//span[@class="total"]/text() 提取价格。

  4. lxml.etree

    • lxml 是一个高效的 HTML/XML 解析库。

    • 使用 etree.HTML(source) 将 HTML 源码转换为可解析的对象。

    • 使用 xpath() 方法提取数据。

  5. 异常处理

    • 使用 try-except 捕获异常(如未找到链接或下一页按钮),避免程序崩溃。

  6. 翻页逻辑

    • 通过查找“下一页”按钮并点击实现翻页。

    • 如果“下一页”按钮包含 disabled 类,则停止翻页。

这段代码是一个典型的 Selenium 爬虫,通过模拟用户操作从链家网提取二手房信息。它结合了 Selenium 的浏览器自动化能力和 lxml 的高效解析能力,适合处理需要 JavaScript 渲染的动态网页。通过学习这段代码,可以掌握 Selenium 的基本用法、XPath 数据提取技巧以及爬虫的翻页逻辑。 

三、具体代码以及详解 

  1. 配置 ChromeDriver

    • 指定 ChromeDriver 的路径,并创建 Service 对象,用于管理 ChromeDriver 的启动和停止。

  2. 解析详情页

    • 使用 driver.execute_script 打开新标签页并跳转到详情页。

    • 使用 driver.switch_to.window 切换到新标签页。

    • 使用 WebDriverWait 等待详情页的关键元素加载完成。

    • 调用 parse_detail_info 函数提取详情页信息。

    • 关闭详情页并切换回列表页。

  3. 解析详情页信息

    • 使用 lxml.etree 解析 HTML 源码。

    • 使用 XPath 提取价格、标题、地址、面积和户型等信息。

    • 如果未找到某个信息,则打印“未知”。

  4. 主循环

    • 启动 Chrome 浏览器并打开链家网的二手房列表页面。

    • 使用 WebDriverWait 等待房源列表加载完成。

    • 使用 lxml.etree 解析列表页,提取每个房源的链接。

    • 遍历每个房源链接,调用 parse_detail_page 提取详细信息。

    • 点击“下一页”按钮,重复上述过程,直到没有下一页为止。

  5. 异常处理

    • 在提取链接或点击“下一页”按钮时,捕获异常并处理,避免程序崩溃。

  6. 关闭浏览器

    • 在所有操作完成后,调用 driver.quit() 关闭浏览器。

import time
from lxml import etree
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By# 配置 ChromeDriver
# 指定 ChromeDriver 的路径
driver_path = r"D:\chromdriver\chromedriver-win64\chromedriver.exe"
# 创建 Service 对象,用于管理 ChromeDriver 的启动和停止
service = Service(executable_path=driver_path)# 解析详情页
def parse_detail_page(link):"""打开详情页并提取信息:param link: 详情页的 URL"""# 使用 JavaScript 打开新标签页并跳转到详情页driver.execute_script("window.open('%s')" % link)# 切换到新打开的标签页(详情页)driver.switch_to.window(driver.window_handles[1])# 等待详情页加载完成# 使用 WebDriverWait 等待价格容器元素加载完成,最多等待 10 秒WebDriverWait(driver, timeout=10).until(EC.presence_of_element_located((By.XPATH, '//div[@class="price-container"]')))# 解析详情页信息# 调用 parse_detail_info 函数,传入当前页面的 HTML 源码parse_detail_info(driver.page_source)# 关闭详情页,切换回列表页time.sleep(2)  # 等待 2 秒,确保操作完成driver.close()  # 关闭当前标签页(详情页)driver.switch_to.window(driver.window_handles[0])  # 切换回列表页# 解析详情页信息
def parse_detail_info(source):"""从详情页的 HTML 源码中提取房屋信息:param source: 详情页的 HTML 源码"""# 将 HTML 源码转换为 lxml 的 etree 对象,便于使用 XPath 提取数据html = etree.HTML(source)# 提取价格信息# 使用 XPath 定位价格元素,并提取文本内容price = html.xpath('//div[@class="price-container"]//span[@class="total"]/text()')print("价格:", price[0] if price else "未知")  # 如果找到价格则打印,否则打印“未知”# 提取房屋标题# 使用 XPath 定位标题元素,并提取文本内容title = html.xpath('//h1[@class="main"]/text()')print("标题:", title[0] if title else "未知")  # 如果找到标题则打印,否则打印“未知”# 提取地址信息# 使用 XPath 定位地址元素,并提取文本内容address = html.xpath('//div[@class="communityName"]//a/text()')print("地址:", address[0] if address else "未知")  # 如果找到地址则打印,否则打印“未知”# 提取面积信息# 使用 XPath 定位面积元素,并提取文本内容area = html.xpath('//div[@class="houseInfo"]//div[@class="area"]//div[@class="mainInfo"]/text()')print("面积:", area[0] if area else "未知")  # 如果找到面积则打印,否则打印“未知”# 提取户型信息# 使用 XPath 定位户型元素,并提取文本内容layout = html.xpath('//div[@class="houseInfo"]//div[@class="room"]//div[@class="mainInfo"]/text()')print("户型:", layout[0] if layout else "未知")  # 如果找到户型则打印,否则打印“未知”# 主循环
while True:# 启动 Chrome 浏览器driver = webdriver.Chrome(service=service)# 打开链家网的二手房列表页面driver.get("https://zb.lianjia.com/ershoufang/")# 等待列表页加载完成# 使用 WebDriverWait 等待房源列表元素加载完成,最多等待 10 秒WebDriverWait(driver, timeout=10).until(EC.presence_of_element_located((By.XPATH, '//div[@class="leftContent"]//ul[@class="sellListContent"]')))# 将列表页的 HTML 源码转换为 lxml 的 etree 对象html = etree.HTML(driver.page_source)# 使用 XPath 定位所有房源列表项lis = html.xpath('//div[@class="leftContent"]//ul[@class="sellListContent"]/li')# 遍历每个房源列表项for li in lis:try:# 提取房源的详情页链接link = li.xpath(".//a/@href")[0]  # 调整 XPath 表达式# 调用 parse_detail_page 函数,打开详情页并提取信息parse_detail_page(link)except IndexError:# 如果未找到链接,则跳过该条目print("未找到链接,跳过该条目")continue# 单击下一页按钮try:# 定位“下一页”按钮next_btn = driver.find_element(By.XPATH, "//div[@class='page-box house-lst-page-box']/a[last()]")# 检查“下一页”按钮是否被禁用(即是否到达最后一页)if "disabled" in next_btn.get_attribute("class"):break  # 如果到达最后一页,则退出循环else:# 点击“下一页”按钮driver.execute_script("arguments[0].click();", next_btn)except Exception as e:# 如果未找到“下一页”按钮或无法点击,则退出循环print("未找到下一页按钮或无法点击:", e)break# 关闭浏览器
driver.quit()  # 退出浏览器

 四、运行结果展示

http://www.dtcms.com/wzjs/607499.html

相关文章:

  • 肥城网站制作网站设计制作太原
  • 优质手机网站建设推荐网站制作包括什么
  • app网站及其特色hao123网址大全浏览器设为主页
  • 宁海县建设局网站重庆市建设工程信息网 最权威平台中项网
  • 2018年网站建设wordpress织梦哪个好
  • 网站开发要什么专业建设银行住房租赁品牌
  • 长沙建网站公司泉州网站建设有哪些
  • 在线网站建设收费深圳展厅设计
  • 长春做网站新格公司建设网站需要什么硬件设施
  • 秀设计网站网站开发设置用户
  • 自建的电子网站如何做推广整合营销传播经典案例
  • 合肥做网站的公司讯登深圳注册公司股东
  • 多种语言网站制作做a 免费网站有哪些
  • 建设网站的相关技术指标pdf文件打印乱码
  • 电子商务书店网站设计实验广州seo优化效果
  • 怎样看网站的建设时间旅游网站开发的国内外现状
  • 深圳专业网站排名公司杨和网站设计制作
  • 2003网站服务器建设中工长网站开发
  • 纯英文网站建设wordpress login 图标
  • 泰州网站建设解决方案wordpress服务器镜像
  • 资源网站免费的绍兴专业做网站
  • 常见的网站建设程序有哪些网络存储上做网站
  • 如何做电商网站内网门户网站建设方案
  • 优设设计师网站网络营销相关理论有哪些
  • 网站建设外贸做推广便宜的网站
  • 小公司网站怎么建帮忙做ppt的网站
  • 怎样切图做网站网站在建设中页面
  • 自助建站软件wordpress编辑教程
  • 凡科 360免费建站免费网站源码下载平台
  • 专做蔬菜大棚的网站成都网站制作怎么收费