趣味学python(010)

python——爬取豆瓣网

今天小编学习了爬取豆瓣网,别误会,不是电影?????

爬取一下电影名,电影信息,主演及评分等。

小编再写代码时,查阅资料,了解到了selenium中的显示等待以及隐式等待。

隐式等待:
设置一个最长等待时间,如果在规定的时间内加载完成,则执行下一步,否则一直等到时间戳结束。有个弊端,就是会等待整个页面加载完成才会进行下一步操作,但是有些时候页面元素早就加载好了,但是js之类的东西还没有加载好。

显示等待:

设置一个最长等待时间,指定想要查找的页面元素,如果在规定的时间内加载出来指定的元素就进行下一步操作。否则就抛出异常。

在selenium中,可以使用implicitly_wait time.sleep() webDriverWait()的方法

隐式等待:

from selenium import webdriver
driver.implicitly_wait(0.5)

强制等待:

import time
time.sleep(2)

显示等待:

每隔一段时间就检测一次当前页面元素是否存在。

from selenium import webdriver
from lxml import etree
import time

1,调用谷歌请求豆瓣网址 拿到HTML数据
driver = webdriver.Chrome()
获取到豆瓣网的网址
driver.get(“https://movie.douban.com/typerank?type_name=剧情&type=11&interval_id=100:90&action=”)
driver.implicitly_wait(0.5)
html = driver.page_source
driver.close()
#print(html) # 对应网页的html数据
html = etree.HTML(html) # 整理成文档对象,就可以用xpath了

tit_list = html.xpath(’//span[@class=“movie-name-text”]/a/text()’) # 保存电影名称
misc_list = html.xpath(’//div[@class=“movie-misc”]/text()’) # 保存电影信息
crew_list = html.xpath(’//div[@class=“movie-crew”]/text()’) # 保存电影主演
rate_list = html.xpath(’//span[@class=“rating_num”]/text()’) # 保存电影评分

3.准备保存数据
for tit, misc, crew, rate in zip(tit_list, misc_list, crew_list, rate_list):
content = tit, misc, crew, rate
print(content)
with open(“豆瓣.txt”, ‘a’, encoding=“utf-8”) as f:
f.write(str(content) + ‘\n’)

这是爬取后的结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值