社区首页 >问答首页 >使用regex在循环过程中查找href中的内容。

使用regex在循环过程中查找href中的内容。
EN

Stack Overflow用户
提问于 2018-09-11 11:50:46
回答 1查看 84关注 0票数 0

为了获得Python初学者的“额外学分”,我想使用regex从URL中提取数据。我知道我还有其他方法可以做这件事,但是我的食客迫切需要工作所以.

给定一个要开始的URL,在页面上查找href的xth事件,并使用该链接降低一个级别。冲洗和重复,直到我已经在网页上找到所需的链接,在网站上要求的深度。

我正在使用Python3.7和Beautiful 4。在程序开始时,在做完所有家务活之后,我有:

代码语言:javascript
代码运行次数:0
复制
starting_url = 'http://blah_blah_blah_by_Joe.html'
extracted_name = re.findall('(?<=by_)([a-zA-Z0-9]+)[^.html]*', starting_url)
selected_names.append(extracted_name)
# Just for testing purposes
print(selected_name)  [['Joe']]

嗯,有点奇怪,没想到会有一个嵌套的列表,但我知道如何平顺一个列表,所以好的。我们继续吧。

我用自己的方式完成了几个循环,通过以下方法打开下一个级别的每个url:

代码语言:javascript
代码运行次数:0
复制
html = urllib.request.urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, 'html.parser')
tags = soup('a')

继续处理,在程序应该找到我想要的href的循环中:

代码语言:javascript
代码运行次数:0
复制
# Testing to check I have found the correct href
print(desired_link)  <a href="http://blah_blah_blah_by_Mary.html">blah 
    blah</a>
type(desired_link) bs4.element.tag

正确的链接,但“类型”对我来说是新的,而不是什么东西,我可以使用re.findall。所以更多的研究和我已经发现:

代码语言:javascript
代码运行次数:0
复制
for link in soup.find_all('a') :
    tags = link.get('href')
    type(tags) str
    print(tags)
       http://blah_blah_blah_by_George.html 
       http://blah_blah_blah_by_Bill.html 
       http://blah_blah_blah_by_Mary.html
       etc.

正确的类型,但当我看到什么印刷,我想我看到的可能只是一个长的字符串?我需要一种方法,只需将字符串中的第三个href赋值给一个可以在re.findall中使用的变量(‘regex表达式’,desired_link)。

我想是时候求助了。

而且,在我们讨论这个问题的时候,对于为什么我第一次在正则表达式中使用re.findall时会得到嵌套列表,有什么想法吗?

请让我知道如何改进这个问题,这样我就可以更清楚地知道我做了什么和我在寻找什么(我知道你们会的,甚至没有我的要求)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-11 13:02:51

你把页面上的每一个链接都打印出来了。但是每次循环标记中只包含其中一个(您可以打印len(tags)以方便地验证它)。

另外,我建议用[a-zA-Z0-9]+代替\w+ --它会捕捉字母、数字和下划线,而且更干净。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52283259

复制
相关文章
java 日志时间错误
电脑上所有 java 应用、项目时间都不对。 核心业务系统启动后日志时间和当前系统时间差11个小时30分钟,电脑用的是云桌面系统有严格的权限控制,找相关人和同事弄了几次没好;都知道是时区问题,但没注意到系统桌面右下角的提示。最后解决方法很简单,先说解决方法。 (出现问题的主机是无法连接公网的,文件也无法外传,图片都是照片;)
全栈程序员站长
2022/07/25
1.6K0
java 日志时间错误
ntp服务器 时间(查看服务器时间)
大家好,又见面了,我是你们的朋友全栈君。 public static String getNTPServerDateTime(String NTPTimeServerUrl) { String dateTimeMessage; try { NTPUDPClient timeClient = new NTPUDPClient(); InetAddress timeServerAddress = InetAddress.getByName(NTPTimeServe
全栈程序员站长
2022/07/28
6.3K0
思迅软件出现同步服务器时间错误的解决办法
1、请点击“开始”—“运行”—“gpedit.msc”—“回车”—“打开组策略”。在组策略管理器中选择“计算机配置”— “windows设置”—“安全设置”—“本地策略”—“用户权利指派”—“更改系统时间”。双击打开“更新系统 时间配置”属性对话框,在里面“添加用户或组”—“高级”—“查找”—“选择你的用户名”—“确定”; 2、登录服务器查询服务器时间后,修改分部电脑时间与服务器时间一致,前后时间差异不能小于3分钟; 3、操作系统过于精简用户没有自动修改时间权限导致,重新安装分店纯净版电脑操作系
学派客
2023/04/06
1.1K0
自动与时间服务器时间同步,Windows系统时间同步(附时间同步服务器地址)
] 分支,并双击 SpecialPollInterval 键值,将对话框中的“基数栏”选择到“十进制”上,如图1所示
全栈程序员站长
2022/09/13
12.3K0
自动与时间服务器时间同步,Windows系统时间同步(附时间同步服务器地址)
如何搭建ntp时间服务器(搭建时间同步服务器)
NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。 NTP服务器就是利用NTP协议提供时间同步服务的。
全栈程序员站长
2022/07/25
15.9K0
NTP时间服务器
大家好,又见面了,我是你们的朋友全栈君。1. NTP简介 NTP(Network Time Protocol 网络时间协议)是一个用于同步计算机时钟的网络协议。它可以使计算机与其他服务器或时钟源进行时间同步,进行高精度的时间校正。
全栈程序员站长
2022/07/22
5K0
NTP时间服务器
Linux 时间服务器
NTP:Network Time Protocol 网络时间协议,用来同步网络中各主机的时间,在linux系统中早期使用ntp来实现,后来使用chrony来实现,Chrony 应用本身已经有几年了,其是是网络时间协议的 (NTP) 的另一种实现。
星哥玩云
2022/09/15
4.7K0
500-内部服务器错误_显示内部服务器错误怎么办
HTTP500内部服务器错误”解决方法 – 苦涩的茶 – 博客园HTTP500内部服务器错误的提示,无法法查看错误的详细信息,用户也没办法根据具体的问题来解决,这对很多新用户确实是一件很麻烦的事情,遇来源:www.mingqicha.com
全栈程序员站长
2022/09/22
3.8K0
NTP时间服务器简介
NTP(Network Time Protocol) 网络时间协议,工作在UDP的123端口上。是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(局域网上与标准间差小于1毫秒,互联网上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
全栈程序员站长
2022/07/25
2.7K0
Linux NTP时间服务器
NTP 时间服务器 ntp也是一种协议 ntp软件(支持ntp协议)  CentOS6自带 CentOS7需要安装 chrony软件(支持ntp协议)   CentOS7自带 安装ntp CentOS6系统自带ntp,CentOS7需要自己安装 [root@m02 ~]# yum -y install ntp [root@m02 ~]# rpm -qa ntp ntp-4.2.6p5-25.el7.centos.2.x86_64 配置ntp 权限参数含义 noquery:不提供ntp服务 notrap:不提
863987322
2018/01/24
8K0
构建NTP时间服务器
NTP服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服务器与时间服务器的时间保持一致,某些应用对时间实时性要求高的必须统一时间。 互联网的时间服务器也有很多,例如ntpdate ntp.fudan.edu.cn 复旦大学的NTP免费提供互联网时间同步。 NTP时间服务器安装: yum install ntp ntpdate -y 即可! 修改ntp.conf配置文件 vi /etc/ntp.conf 只修改如下两行,把#号去掉即可! server 127.127.1.0 # l
程序员同行者
2018/08/16
3.4K0
macbook重设密码服务器错误_网页显示500错误
1。右键我的电脑–管理–本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。
全栈程序员站长
2022/09/21
3.1K0
修改CentOS服务器时间为北京时间
购买了VPS,CentOS系统,发现服务器时间与北京时间往往不一致,存在时差。 [clive@server workspace]$ date 2018年 05月 30日 星期三 02:02:47 UTC 可以执行tzselect命令按提示更换时区,依次选择5-Asia,9-China,1-Beijing Time。 Please identify a location so that time zone rules can be set correctly. Please select a continen
Clive
2018/06/08
4.3K0
服务器的时间配置
在crontab -e 中配置自动同步时间:0 /usr/sbin/ntpdate -u ntp.api.bz
@凌晨
2020/05/28
2K0
服务器ntp时间同步
注意:若不加上-u参数, 会出现以下提示:no server suitable for synchronization found
summerking
2022/09/19
5.7K0
与时间服务器同步
但可以分如下2种限制: 2.1 只允许192.168.100.0网段的客户机进行时间同步 在restrict default kod nomodify notrap nopeer noquery(表示默认拒绝所有IP的时间同步)之后增加一行:
俊才
2019/09/18
4.3K0
与时间服务器同步
Linux服务器时间同步
查看系统时间 [root@localhost ~]# date Tue Jun 13 10:20:13 CST 2017 查看硬件时间 [root@localhost ~]# hwclock --show Tue 13 Jun 2017 02:11:12 AM CST -0.848845 seconds 可以看出系统时间比硬件时间快,系统时间是准确的 假如系统时间和硬件时间都不准确 更新系统年月日 [root@localhost ~]# timedatectl set-time 2018-05-31 更新
咻一咻
2020/05/29
5K0
服务器时间做好啦
做好了农历和公历时间的动态显示。有意思。哈哈。 //后台:  $(document).ready(function () {                         //从服务器上获取初始时间             var currentTime = '';             GetAllDate(currentTime);         }); 前台: <span id="Clock"></span>&nbsp;<span id="LunarClock"></span> GetLuna
超级大猪
2019/11/22
1.1K0
NTP时间服务器 搭建
惨绿少年
2017/12/27
4.7K0
js获取服务器时间
var DD,MM,YY,hh,mm; if(document.all){ window.XMLHttpRequest=function(){ var get=['Microsoft.XMLHTTP','Msxml2.XMLHTTP']; for(var i=0;i<get.length;i++){try{return new ActiveXObject(get[i])}catch(e){}}; }; } window.time=new Date(); targ
deepcc
2018/05/16
6.5K0

相似问题

PHP ()给出了错误的时间-- CentOS服务器时间

13

Django服务器显示错误的时间

217

服务器上的时间转换错误

17

服务器端日期时间错误

31

Django -服务器上的日期时间错误

121
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文