python - 用 Python 从 phpbb3 论坛上抓取第一篇文章
问题描述
我有这样的链接
http://www.arabcomics.net/phpbb3/viewtopic.php?f=98&t=71718
该链接在phpbb3论坛的第一篇文章中有链接
我如何在第一篇文章中获得链接
我试过这个但不工作
import requests
from bs4 import BeautifulSoup as bs
url = 'http://www.arabcomics.net/phpbb3/viewtopic.php?f=98&t=71718'
response= requests.get(url)
soup = bs(response.text, 'html5lib')
itemstr= soup.findAll('div',{'class':'postbody'})
for link in itemstr.findAll('a'):
links = link.get('href')
print(links)
解决方案
天哪,我的男人,只需为此使用正则表达式吗?无需使用 bs,即使他们重新制作网站,正则表达式也可以工作。
import re
myurlregex=re.compile(r'''(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))\" class=\"postlink\"''')
url = re.findall(myurlregex,response.text)[0]
同样作为编码器正则表达式是您始终需要的技能之一。
推荐阅读
- java - Mapper 和 Reducer 类型不匹配
- php - 相互减去数组值创建新数组
- javascript - 我应该声明什么值类型的对象变量
- java - JAXB:从绑定文件生成 javadoc
- python - 如何用python转置和自动填充数据框?
- php - open_basedir | ISPManager 试图将其关闭或将其设置为“无”
- dart - 更改 DataTable 行和列的颜色
- php - CakePHP:数据库连接“Mysql”丢失,或无法创建
- javascript - 我想从后端呈现动态内容,该后端在本机反应中具有 html 标签
- c# - 列出存储在 C# 中 System.Security.Claims.ClaimTypes 中的所有声明类型