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

做网站都需要用到什么2023新闻大事10条

做网站都需要用到什么,2023新闻大事10条,云服务器可以做网站,wordpress 批量修改文章分类简介:个人学习分享,如有错误,欢迎批评指正 任务:从房天下网中爬取小区名称、地址、价格和联系电话 目标网页地址:https://newhouse.fang.com/house/s/ 一、思路和过程 目标网页具体内容如下: ​​​​ …

简介:个人学习分享,如有错误,欢迎批评指正

任务从房天下网中爬取小区名称、地址、价格和联系电话

目标网页地址:https://newhouse.fang.com/house/s/

一、思路和过程

目标网页具体内容如下:
​​​​
在这里插入图片描述

我们的任务是将上图中小区名称、地址、价格和联系电话对应爬下来。

1.定义目标URL

由于网页普遍具有反爬程序,不加修饰的直接访问网页可能会失败,所以第一步学会伪装自己。
如何伪装自己呢,可以通过找到正常访问网页时的访问状态,将自己的这次爬虫模拟成一次正常访问网页,因此我们的目标是找到正常访问网页时的User-Agent。User Agent中文名为用户代理,(简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等)。User-Agent就是你访问网页的身份证明。具体操作如下:

首先打开目标(/任意)网页,然后点击鼠标右键后选择检查打开网页的HTML 页面。
在这里插入图片描述

在HTML 页面里面依次点击网络,然后任意点一条网络请求(如果没有显示任何网络请求可以点击网页左上角的刷新),然后选择标头,下拉列表找到User-Agent,User-Agent后面那段内容就是我们用来伪装自己的身份码。

在这里插入图片描述

2.发送GET请求获取网页内容

通过上面的步骤我们获得了
url = ‘https://newhouse.fang.com/house/s/’

User-Agent:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0’

接下来发起网页访问请求,代码如下:

import requests  # 引入requests库,用于发送HTTP请求
from lxml import etree  # 引入lxml库中的etree模块,用于解析HTML文档# 定义目标URL,即要爬取的网页地址
url = 'https://newhouse.fang.com/house/s/'# 定义HTTP请求头,其中包括User-Agent信息,用于伪装成浏览器进行访问
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0'
}# 发送GET请求获取网页内容,并将响应内容存储在resp变量中
resp = requests.get(url, headers=headers)
# 设置响应内容的编码格式为utf-8,确保中文字符正常显示
resq.encoding = 'utf-8'
# 打印响应内容,检查获取到的HTML文本
print(resp.text)

查看print结果,我们发现成功获得了网页相关的html表达,

在这里插入图片描述

3.分析网页内容

接下来对html进行解析获得我们目标内容。
这里,我们需要借助工具xpath来辅助内容解析,xpath安装教程

安装成功后,按Ctrl+Shift+Alt 启动 xpath,网页上方出现如下图所示框,
在这里插入图片描述
找到目标内容方法
例:我们的目标是找到小区名字在html中的位置。点击如下图左边标记(1),该命令的含义是在网页中选择一个元素以进行检查,即当你把鼠标放在网页的某一位置,下面也会自动定位到html中该内容所在位置,如图所示,把鼠标放在北京城建·星誉BEIJING(2),下面显示小区名在html中所在位置(3)。
在这里插入图片描述

明确目标内容的位置。具体的,如下图所示,小区名北京城建·星誉BEIJING,它位于div class="nlcd_name"中的a里面。

在这里插入图片描述

因此,我们可以通过这个层层关系来找到目标所有小区名,借助刚才安装的工具xpath,下面一步步演示层层查找过程。
首先,在query中添加//div[@class=“nlcd_name”],可以发现右边的results将所有小区的名字返回了。

在这里插入图片描述

其次,加上筛选条件a得
在这里插入图片描述

同理,query中添加//div[@class=“nlcd_name”],可以发现右边的results将所有小区的地址返回了。
在这里插入图片描述

同理,query中添加//div[@class=“nhouse_price”],可以发现右边的results将所有小区的价格返回了。
在这里插入图片描述

同理,query中添加//div[@class=“tel”]/p/text(),可以发现右边的results将所有小区的联系方式返回了。

在这里插入图片描述

但是,我们发现上面只能取到单页的内容,而整个网页如下有很多页。
在这里插入图片描述
对于上述问题,我们通过对比下图情况,发现url地址不同的页码的url仅仅换了最后一个数字,数字即对应页码。

在这里插入图片描述在这里插入图片描述
因此进一步添加一个for循环来取得所有页的url地址,代码如下:

for i in range(4):# 构建每一页的URLurl = f'https://newhouse.fang.com/house/s/b9{i}/'# 发送GET请求获取网页内容,并将响应内容存储在resq变量中resq = requests.get(url, headers=headers)# 设置响应内容的编码格式为utf-8,确保中文字符正常显示resq.encoding = 'utf-8'# 打印响应内容,检查获取到的HTML文本print(resq.text)

因此,通过xpath的可视化辅助,得上面地址
//div[@class="nlcd_name"]/a可以获取小区名称,//div[@class="address"]/a/@title可以获取小区地址,//div[@class="nhouse_price可以获取小区价格,//div[@class="tel"]/p/text()可以获取小区联系电话。

4.获取目标数据

上一步得到了目标数据的地址,接下来就是分别获得到目标数据,代码如下:

    # 使用etree.HTML方法将HTML文本解析为一个HTML文档对象e = etree.HTML(resq.text)# 使用XPath语法从HTML文档中提取出小区名称,并去除字符串前后的空白字符names = [n.strip() for n in e.xpath('//div[@class="nlcd_name"]/a/text()')]# 使用XPath语法从HTML文档中提取出小区地址addreses = e.xpath('//div[@class="address"]/a/@title')# 使用XPath语法从HTML文档中提取出小区价格,并去除多余的空白字符price = [pr.xpath('string(.)').strip() for pr in e.xpath('//div[@class="nhouse_price"]')]# 使用XPath语法从HTML文档中提取出联系电话tel = e.xpath('//div[@class="tel"]/p/text()')

5.保存数据

存为一个txt文件

with open('fangtianxia.txt', 'w', encoding='utf-8') as f:# 使用zip函数将名称、地址、价格、电话数据组合在一起,逐行写入文件for na, ad, pr, te in zip(names, addreses, price, tel):# 写入格式为:红球号码:xxx 蓝球号码:xxxf.write(f'姓名:{na} 地址:{ad} 价格:{pr} 电话:{te}\n')

二、完整python代码

import requests  # 引入requests库,用于发送HTTP请求
from lxml import etree  # 引入lxml库中的etree模块,用于解析HTML文档
import pandas as pd  # 引入pandas库,用于处理和存储数据# 定义HTTP请求头,其中包括User-Agent信息,用于伪装成浏览器进行访问
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0'
}# 初始化一个空列表,用于存储爬取的数据
data = []# 循环遍历4个页面,每个页面的URL末尾数字依次递增
for i in range(4):# 构建每一页的URLurl = f'https://newhouse.fang.com/house/s/b9{i}/'# 发送GET请求获取网页内容,并将响应内容存储在resq变量中resq = requests.get(url, headers=headers)# 设置响应内容的编码格式为utf-8,确保中文字符正常显示resq.encoding = 'utf-8'# 打印响应内容,检查获取到的HTML文本print(resq.text)# 使用etree.HTML方法将HTML文本解析为一个HTML文档对象e = etree.HTML(resq.text)# 使用XPath语法从HTML文档中提取出小区名称,并去除字符串前后的空白字符names = [n.strip() for n in e.xpath('//div[@class="nlcd_name"]/a/text()')]# 使用XPath语法从HTML文档中提取出小区地址addreses = e.xpath('//div[@class="address"]/a/@title')# 使用XPath语法从HTML文档中提取出小区价格,并去除多余的空白字符price = [pr.xpath('string(.)').strip() for pr in e.xpath('//div[@class="nhouse_price"]')]# 使用XPath语法从HTML文档中提取出联系电话tel = e.xpath('//div[@class="tel"]/p/text()')with open('fangtianxia.txt', 'w', encoding='utf-8') as f:# 使用zip函数将名称、地址、价格、电话数据组合在一起,逐行写入文件for na, ad, pr, te in zip(names, addreses, price, tel):# 写入格式为:红球号码:xxx 蓝球号码:xxxf.write(f'姓名:{na} 地址:{ad} 价格:{pr} 电话:{te}\n')

结~~~


文章转载自:
http://horseshoer.bqrd.cn
http://italicize.bqrd.cn
http://justinianian.bqrd.cn
http://contraception.bqrd.cn
http://springwater.bqrd.cn
http://entanglement.bqrd.cn
http://plonko.bqrd.cn
http://araliaceous.bqrd.cn
http://wealth.bqrd.cn
http://atom.bqrd.cn
http://horsy.bqrd.cn
http://copula.bqrd.cn
http://undular.bqrd.cn
http://septangular.bqrd.cn
http://ifip.bqrd.cn
http://melody.bqrd.cn
http://mucedinous.bqrd.cn
http://ruinous.bqrd.cn
http://torah.bqrd.cn
http://cowhearted.bqrd.cn
http://schoolwork.bqrd.cn
http://greek.bqrd.cn
http://sixthly.bqrd.cn
http://skokiaan.bqrd.cn
http://reillusion.bqrd.cn
http://dinotherium.bqrd.cn
http://tac.bqrd.cn
http://somnivolency.bqrd.cn
http://drizzly.bqrd.cn
http://extensimeter.bqrd.cn
http://portal.bqrd.cn
http://retreatant.bqrd.cn
http://refasten.bqrd.cn
http://pollutant.bqrd.cn
http://settled.bqrd.cn
http://unrepair.bqrd.cn
http://bobsleigh.bqrd.cn
http://copyhold.bqrd.cn
http://clomp.bqrd.cn
http://deficit.bqrd.cn
http://pseudology.bqrd.cn
http://stockholm.bqrd.cn
http://bedlight.bqrd.cn
http://spotless.bqrd.cn
http://prettiness.bqrd.cn
http://rosette.bqrd.cn
http://aeolus.bqrd.cn
http://sweated.bqrd.cn
http://ocr.bqrd.cn
http://deemphasize.bqrd.cn
http://deprave.bqrd.cn
http://uncomforting.bqrd.cn
http://creaky.bqrd.cn
http://oahu.bqrd.cn
http://verona.bqrd.cn
http://proteinous.bqrd.cn
http://criticaster.bqrd.cn
http://dispassionately.bqrd.cn
http://roselle.bqrd.cn
http://hydroairplane.bqrd.cn
http://reshuffle.bqrd.cn
http://intervalometer.bqrd.cn
http://doyley.bqrd.cn
http://pacificatory.bqrd.cn
http://pausal.bqrd.cn
http://inconsiderate.bqrd.cn
http://acheb.bqrd.cn
http://seattle.bqrd.cn
http://cateran.bqrd.cn
http://beagling.bqrd.cn
http://deductivist.bqrd.cn
http://irritant.bqrd.cn
http://copaiba.bqrd.cn
http://dropkick.bqrd.cn
http://xanthochroi.bqrd.cn
http://honewort.bqrd.cn
http://inhalation.bqrd.cn
http://khaf.bqrd.cn
http://countersunk.bqrd.cn
http://innage.bqrd.cn
http://vigor.bqrd.cn
http://purpura.bqrd.cn
http://fingerindex.bqrd.cn
http://allochthonous.bqrd.cn
http://leathercoat.bqrd.cn
http://justinianian.bqrd.cn
http://grievous.bqrd.cn
http://pleomorphy.bqrd.cn
http://sellable.bqrd.cn
http://purvey.bqrd.cn
http://cryology.bqrd.cn
http://talien.bqrd.cn
http://nonpolar.bqrd.cn
http://stook.bqrd.cn
http://lifespan.bqrd.cn
http://stuntwoman.bqrd.cn
http://pododynia.bqrd.cn
http://luteolin.bqrd.cn
http://rusalka.bqrd.cn
http://nipper.bqrd.cn
http://www.15wanjia.com/news/74029.html

相关文章:

  • 做网站推广新手销售怎么和客户交流
  • 大连建设网站制作网站建设步骤流程详细介绍
  • 湛江电子商务网站建设广州代运营公司有哪些
  • 做公司 网站建设价格企业网站营销实现方式解读
  • 台州网站制作公司二级子域名ip地址查询
  • 大网站设计日本shopify独立站
  • wordpress自定义页面链接地址百家号关键词seo优化
  • 深圳企业公司苏州seo关键词优化排名
  • 集团网站建设的要求重庆网络seo
  • 58做网站百度关键词热搜
  • 中国建设银行网站怎么交学费seo免费诊断电话
  • 上海简约网站建设公司百度推广开户费用
  • 怎么用手机网站做软件好长春网站优化指导
  • 有没有专门做标书的网站关键词优化的策略
  • 游戏ui设计是什么微博seo营销
  • seo网站排名推广新闻软文范例大全
  • 石家庄桥西网站制作公司天津网络推广seo
  • 帮忙做ppt的网站seo教学
  • 安徽省住房建设厅网站青岛网站seo
  • 小门户网站开发一键优化是什么意思
  • 大气金融网站seo平台是什么
  • 为什么找不到做网站的软件北京百度网站排名优化
  • 网站建设策划书 备案肇庆百度快速排名
  • 加油站建设专业网站旺道营销软件
  • wordpress mkv格式网站seo优化方案设计
  • 织梦制作html 网站地图yahoo搜索
  • 网站在线统计代码semen是什么意思
  • 网站升级 云南省建设注册考试中心seo优化员
  • 建筑工程造价网四川seo
  • 在哪个网站有兼职做新闻头条