|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 wrpython 于 2019-4-19 08:35 编辑
先贴上要请教的代码:
- import requests
- import bs4
- res = requests.get('https://movie.douban.com/top250')
- soup = bs4.BeautifulSoup(res.text,'html.parser')
- targets = soup.find_all('div',class_='hd')
- for each in targets:
- print(each.a.span.text)
复制代码 这是小甲鱼视频《爬取豆瓣TOP250电影排行榜》 中的代码。对于最后一段代码“print(each.a.span.text)”, 我有个疑问。
我在查看了这个网页中对应元素时发现<div class="hd">下面不仅仅只有一个span,而是有3个span,详见截图
我们在输出时只输出了<span class=''title''>这部分内容,如果我要输出另外两个span的话应该如何修改代码呢???
本帖最后由 wp231957 于 2019-4-19 09:50 编辑
- # coding: utf-8
- import requests
- from lxml import etree
- if __name__ == '__main__':
- url="https://movie.douban.com/top250"
- response = etree.HTML(requests.get(url=url).text)
- rlen = response.xpath("//div[@class='article']/ol/li")
- for i in range(1,len(rlen)+1):
- ls=[]
- for j in range(1,4):
- path1 = response.xpath("//div[@class='article']/ol/li[%d]/div/div[2]/div[1]/a/span[%d]"%(i,j))
- try:
- out = "".join(path1[0].text.split()) #去除\Xa0 或是
- ls.append(out)
- except:
- continue
- print(ls)
复制代码
|
|