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

上海企业招聘网/seo资讯推推蛙

上海企业招聘网,seo资讯推推蛙,无锡市住房与城乡建设局网站,做公司网站要素正则表达式的概念 什么是正则表达式? 正则表达式是用来简洁表达一组字符串的表达式 使用正则表达式的优势是什么? 简洁 一行胜前言 一行就是特征(模式) 正则表达式的语法 正则表达式语法由字符和操作符构成 Re库的基本使用 …

正则表达式的概念

什么是正则表达式?

正则表达式是用来简洁表达一组字符串的表达式

使用正则表达式的优势是什么?

简洁 一行胜前言 一行就是特征(模式)

正则表达式的语法 

正则表达式语法由字符和操作符构成

   Re库的基本使用

Re库是Python的标准库,主要用于字符串匹配

调用方式:import re

意思就是出现了转义符,普通的字符串需要\\n转义,而使用原生字符串就不需要,直接r'\n'

因此:当正则表达式包含转义符时,使用raw string

 

 

 

 match和search的方法比较相似,都是在一个字符串s中寻找pat子字符串,如果能找到,就返回一个Match对象,如果找不到,就返回None。但是不同的是,mtach方法是从头开始匹配,而search方法,可以在s字符串的任一位置查找。

意思就是match方法遇到了空格,那么它就会停止查找

 

 

 

 

  

 

这种等价的用法是通过面向对象的方式来使用正则表达式,它包含有俩部分,第一个部分是使用re.compile,将一个正则表达式的字符串,编译成为一个正则表达式的类型,然后我们就可以通过pattern对象,直接调用search等六个方法来获取相关结果,这种方法的好处是经过一次编译,当我们需要多次对正则表达式进行使用和匹配时,就可以通过这个方式来加快整个程序的运行 

 Re库的match对象

 

 Re库的贪婪匹配和最小匹配

 

默认是贪婪匹配,匹配最长的子串,如果要修改为非贪婪匹配,需要在后面加一个,表示匹配最短的子串

 淘宝商品信息定向爬虫

 

        这段代码是一个简单的 Python 爬虫程序,用于爬取淘宝网上指定商品的价格和商品名称,并将结果输出到终端。以下是代码的具体解剖:

引入 requests 和 re 模块

import requests
import re

        这里使用 requests 模块发送 HTTP 请求,获取网页内容;使用 re 模块进行正则表达式匹配,提取所需信息。

定义函数 getHTMLText(url)

def getHTMLText(url):try:r = requests.get(url, timeout=30)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""

        这个函数用于获取指定 url 的网页内容,如果访问成功则返回网页内容,否则返回空字符串。

定义函数 parsePage(ilt, html)

def parsePage(ilt, html):try:plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html)tlt = re.findall(r'\"raw_title\"\:\".*?\"', html)for i in range(len(plt)):price = eval(plt[i].split(':')[1])title = eval(tlt[i].split(':')[1])ilt.append([price, title])except:print("")

        这个函数用于解析网页内容,提取价格和商品名称信息,将它们封装成一个列表并添加到 ilt 列表中。其中,plt 和 tlt 分别是提取价格和商品名称的正则表达式;eval 函数用于将提取出来的字符串转换为数值类型或字符串类型。

定义函数 printGoodsList(ilt)

def printGoodsList(ilt):tplt = "{:4}\t{:8}\t{:16}"print(tplt.format("序号", "价格", "商品名称"))count = 0for g in ilt:count = count + 1print(tplt.format(count, g[0], g[1]))

        这个函数用于将 ilt 列表中的商品价格和名称信息输出到终端,采用的是格式化输出。

定义主函数 main()
def main():goods = '书包'depth = 3start_url = 'https://s.taobao.com/search?q=' + goodsinfoList = []for i in range(depth):try:url = start_url + '&s=' + str(44 * i)html = getHTMLText(url)parsePage(infoList, html)except:continueprintGoodsList(infoList)

        这个函数用于控制整个爬虫程序的运行流程,首先指定要爬取的商品和爬取的页数;然后根据 start_url 和页数 depth 构造出多个 url,并循环遍历这些 url,通过调用 getHTMLText 函数获取网页内容,然后通过调用 parsePage 函数解析网页内容,将结果保存到 infoList 列表中;最后通过调用 printGoodsList 函数将结果输出到终端

优化一下

 在这段代码中,使用了 f-string 格式化字符串的方式,避免了繁琐的字符串拼接操作。同时,优化了正则表达式,避免使用贪婪匹配,提高了代码的效率。

import requests
import redef getHTMLText(url):try:r = requests.get(url, timeout=30)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""def parsePage(ilt, html):try:plt = re.findall(r'"view_price":"([\d\.]*)"', html)tlt = re.findall(r'"raw_title":"(.*?)"', html)for price, title in zip(plt, tlt):ilt.append([price, title])except:print("")def printGoodsList(ilt):print(f'{"序号":4}\t{"价格":8}\t{"商品名称":16}')count = 0for g in ilt:count += 1print(f'{count:4}\t{g[0]:8}\t{g[1]:16}')def main():goods = '书包'depth = 3start_url = f'https://s.taobao.com/search?q={goods}'infoList = []for i in range(depth):try:url = f'{start_url}&s={44*i}'html = getHTMLText(url)parsePage(infoList, html)except:continueprintGoodsList(infoList)if __name__ == '__main__':main()
http://www.lbrq.cn/news/962317.html

相关文章:

  • 番禺网站优化/山东百度推广代理
  • 营销型网站建设要懂代码吗/网络运营推广
  • 陕西做网站公司有哪些/百度推广网站一年多少钱
  • 做网站能用python吗/郑州seo优化哪家好
  • 如何让百度新闻收录网站文章/seo引擎优化服务
  • 企业门户网站建设 北京/线下课程seo
  • 开发网站网络公司/近两年成功的网络营销案例
  • 自助推广平台/广州优化营商环境条例
  • 南京哪些公司做网站/百度推广账号登录入口
  • 免费外贸b2b/宁波如何做seo排名优化
  • 淘宝网站开发源码/seo国外推广软件
  • 宜春市住房和城乡建设局网站/排名
  • 南昌做网站比较好的公司有哪些/微商怎么做推广加好友
  • 郑州做网站云极/磁力bt种子搜索神器
  • 网站开发管理系统有哪些/2345网址导航官网
  • godaddy怎么建设网站/百度登录个人中心
  • 深圳那家做APP网站的最好/营销培训内容有哪些
  • 拿别的公司名字做网站/公司优化是什么意思
  • 网站设计网/企业网络营销推广方案策划
  • 如何做好网络销售技巧/网站seo的内容是什么
  • 网站策划师有前途吗/流量推广怎么做
  • php 微信 网站建设/百度搜索app下载
  • 用阿里云服务器做盗版小说网站吗/wordpress免费建站
  • 重庆网站推广公司电话/常州seo招聘
  • 法院司法公开网站建设情况/搜索引擎排名优化方案
  • 佛山seo/嘉兴seo网络推广
  • wordpress清理缓存/seo网络营销推广公司深圳
  • 做网站的困难/品牌运营策略
  • 中山营销网站建设联系方式/网站seo快速排名
  • 域名申请成功后怎么做网站/长尾关键词挖掘爱站网
  • Diffusion-VLA 中的 Reasoning Token 注入机制解析:语言推理如何控制扩散模型?
  • 数字化转型:概念性名词浅谈(第三十一讲)
  • JPA 与 MyBatis-Plus 数据库自增主键实现方案
  • PyTorch边界感知上下文神经网络BA-Net在医学图像分割中的应用
  • 直播带货与开源AI智能名片链动2+1模式S2B2C商城小程序:重塑电商营销新格局
  • Ubuntu24 辅助系统-屏幕键盘的back按键在网页文本框删除不正常的问题解决方法