动态网页抓取(【每日一题】代码中没有使用“下滑到页面底部” )

优采云 发布时间: 2022-03-31 02:11

  动态网页抓取(【每日一题】代码中没有使用“下滑到页面底部”

)

  代码中没有使用“滑动到页面底部”动作,即没有:

  driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

  这不会影响网页内容的抓取。

  因为原书有这行代码,解析完iframe后,这行代码就不能用了,所以使用driver.switch_to.default_content()切换回原来未解析的iframe。

  但是下面的代码中没有向下滑动的操作,所以不需要同时切换回iframe的代码。

<p> 1 from selenium import webdriver

2 import time

3

4 driver = webdriver.Chrome(executable_path = r'D:\Anaconda\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe')

5 driver.get("http://www.santostang.com/2018/07/04/hello-world/")

6

7 j=0

8 driver.switch_to.frame(driver.find_element_by_css_selector('iframe[title="livere-comment"]'))

9 driver.implicitly_wait(30)

10 while True:

11

12 #buttons为list类型,获取一屏中页面数量

13 buttons = driver.find_elements_by_css_selector('button.page-btn')

14 bSize = len(buttons)

15

16 for i in range(0,bSize):

17 #打开文件

18 file = open(r'C:\Users\rumin\Desktop\comment.txt','a+')

19 file.write('\n')

20 file.write('=====================第%d页评论========================\n'%(i+1+j*10))

21

22 #找到当前页所有comments

23 comments = driver.find_elements_by_css_selector('div.reply-content')

24 for item in comments:

25 comment = item.find_element_by_tag_name('p')

26 print(comment.text)

27 text = comment.text.encode('GBK', 'ignore').decode('GBk')

28 file.write(text+'\n')

29 time.sleep(2)

30 file.close()

31

32 if i

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线