|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 今天的我更强了 于 2020-6-29 10:14 编辑
import requests
import bs4
url='https://movie.douban.com/top250'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
res=requests.get(url,headers=headers)
soup=bs4.BeautifulSoup(res.text,'html.parser')
targets=soup.find_all('div',class_='hd')
for each in targets:
print(each.a.span.text)
这个代码只会把电影名称爬取下来
改成这样:
targets=soup.find_all('span',class_='title')
for each in targets:
print(each.text)
却会把下面的英文爬取下来
审查元素如下:
<div class="hd">
<a class="">
<span class="title">肖申克的救赎</span>
<span class="title"> / The Shawshank Redemption</span>
<span class="other"> / 月黑高飞(港) / 刺激1995(台)</span>
</a>
<span class="playable">[可播放]</span>
</div>
第一个为什么不会打印英文字母?求大佬指教
本帖最后由 Twilight6 于 2020-6-29 10:49 编辑
这样的用法就是只打印第一个
这样是把你变量到each 标签里的 文本内容全部打印
beautifulsoup4 这样使用时候 相同的标签只能获取第一个符合要求的标签,你第一个指定的div 里面 span 标签 ,而第二个指定的是 span 标签
而span 标记都是同缩进的 也就是说他们每一个都算第一个符号要求的标签
|
|