动态网页抓取(【每日一题】代码中没有使用“下滑到页面底部” )
优采云 发布时间: 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