首页 > 解决方案 > 用 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)

标签: pythonweb-scrapingbeautifulsouppython-requestsphpbb3

解决方案


天哪,我的男人,只需为此使用正则表达式吗?无需使用 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]

同样作为编码器正则表达式是您始终需要的技能之一。


推荐阅读