嗨,我使用BeautifulSoup从https://maktabkhooneh.org/plus/捕获{'class':'course-card__title'} 我现在要查找所有( THIS )并将其打印出来,我的代码是:
import re
import requests
from bs4 import BeautifulSoup
r = requests.get('https://maktabkhooneh.org/plus/')
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class':'course-card__title'})
print(results)
x = re.findall(r'\<div class=\'course-card__title\'>(\w+)\<\/div\>',results)
print(x)
但是我有错误,有人可以帮助我吗?
答案 0 :(得分:0)
我想我不认为您真的要在这里使用正则表达式。您可能想遍历results
。
import re
import requests
from bs4 import BeautifulSoup
r = requests.get('https://maktabkhooneh.org/plus/')
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class': 'course-card__title'})
for item in results:
print(item.text)
آموزش تحلیل داده با زبان برنامه نویسی R (مقدماتی)
IELTS: Listening
آموزش تحليل تكنيكال مقدماتی
آموزش برنامهنویسی با پایتون (پیشرفته)
General English: Beginner
Grammar for IELTS
آموزش میکروکنترلر ARM
آموزش پایتون مقدماتی
但是,如果这样做,也许您想使用re.findall()
将输入内容包装到str()
:
import re
import requests
from bs4 import BeautifulSoup
r = requests.get('https://maktabkhooneh.org/plus/')
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class': 'course-card__title'})
for item in results:
x = re.findall(
r'<div class="course-card__title">([^<]*)</div>', str(item))
print(x)
['آموزش تحلیل داده با زبان برنامه نویسی R (مقدماتی)']
['IELTS: Listening']
['آموزش تحليل تكنيكال مقدماتی']
['آموزش برنامه\u200cنویسی با پایتون (پیشرفته)']
['General English: Beginner']
['Grammar for IELTS']