今天的影片内容为爬取Google Play网页版应用程序的评论
并将前几天爬取AJAX网页(Dcard)的程序码稍微进行改良
还有引入重要的try-except陈述句,即使程序跳出错误也能够继续执行下去
Check it out!
以下为影片中有使用到的程序码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import bs4, time
page = int(input("请输入页面向下卷动次数:"))
dirverPath = 'C:\\spider\\chromedriver.exe'
browser = webdriver.Chrome(executable_path = dirverPath)
url = 'https://play.google.com/store/apps/details?id=com.facebook.katana&hl=zh_TW&gl=US&showAllReviews=true'
browser.get(url)
number = 0
counter = 0
post_title = []
while page > counter:
move = browser.find_element_by_tag_name('body')
move.send_keys(Keys.PAGE_DOWN)
time.sleep(0.25)
objsoup = bs4.BeautifulSoup(browser.page_source, 'lxml')
articles = objsoup.find_all('div', jscontroller = 'H6eOGe')
for article in articles:
title = article.find('span', class_ = 'X43Kjb') #寻找留言昵称
rank = article.find('div', role = 'img') #寻找评价
if title.text not in post_title:
number += 1
post_title.append(title.text)
print("留言编号:", number)
print("留言昵称:", title.text)
print("评价:", rank.get('aria-label')) #取得aria-label的属性值
print("="*100)
counter += 1
print(post_title)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import bs4, time
def click_text(obj):
#寻找「显示更多内容」的字串并点击
try:
obj.find_element_by_xpath("//span[contains(text(),'显示更多内容')]").click()
except:
pass
page = int(input("请输入页面向下卷动次数:"))
dirverPath = 'C:\\spider\\chromedriver.exe'
browser = webdriver.Chrome(executable_path = dirverPath)
url = 'https://play.google.com/store/apps/details?id=com.facebook.katana&hl=zh_TW&gl=US&showAllReviews=true'
browser.get(url)
number = 0
counter = 0
post_title = []
while page > counter:
move = browser.find_element_by_tag_name('body')
move.send_keys(Keys.PAGE_DOWN)
click_text(move)
time.sleep(0.5)
objsoup = bs4.BeautifulSoup(browser.page_source, 'lxml')
articles = objsoup.find_all('div', jscontroller = 'H6eOGe')
for article in articles:
title = article.find('span', class_ = 'X43Kjb') #寻找留言昵称
rank = article.find('div', role = 'img') #寻找评价
if title.text not in post_title:
number += 1
post_title.append(title.text)
print("留言编号:", number)
print("留言昵称:", title.text)
print("评价:", rank.get('aria-label')) #取得aria-label的属性值
print("="*100)
counter += 1
print(post_title)
#显示错误
print(5 + "Hello")
print("列印成功!")
#引进try-except陈述句
try:
print(5 + "Hello") #尝试执行此程序
except:
print("语法错误!") #若上述程序出现错误则执行此程序
print("列印成功!")
本篇影片及程序码仅提供研究使用,请勿大量恶意地爬取资料造成对方网页的负担呦!
如果在影片中有说得不太清楚或错误的地方,欢迎留言告诉我,谢谢您的指教。
这边你需要自己制作一个流程控制 不了解的话建可以画个图来确认现在在哪个流程 基本上都会回到主要操控介...
「一般来说,如果你所依赖的模组包含了超过你所需要的,那就是有害的,这可能导致不必要的重新编译和重新...
昨天在设定完身分验证的架构後已经可以在路由上加 auth 中介层来验证使用者的身分是否允许访问。 R...
本篇翻译与讲解 terraform 官方 blog 对於 test terraform 的建议 课程...
前言 写CSS还蛮常会用到阴影,使元素更具有立体感,今天就来认识一下阴影有什麽属性吧。 首先我们要先...