【发布时间】:2017-05-18 08:56:35
【问题描述】:
我试图取消一些电影评论和评级,如果没有更多评论和评级,我试图结束此代码。
page = 1 #'variable' page
blankList = []
while True:
url = "http://movie.naver.com/movie/bi/mi/pointWriteFormList.nhn?code=99715&type=after&isActualPointWriteExecute=false&isMileageSubscriptionAlready=false&isMileageSubscriptionReject=false&page={}".format(page)
res = requests.get(url)
bs = BeautifulSoup(res.text, "lxml")
valueList = bs.findAll("input",{'value':"{}"}).format(str(page))
###the upper code won't work when 'variable page' is bigger than 'maximum page'. if so, it returns blank List.
page = page + 1
score_result = bs.find("div", {'class': 'score_result'})
for review_one in score_result.findAll('li'):
score = int(review_one.find("div", {'class': 'star_score'}).find('em').text)
reple = review_one.find('div',{'class': 'score_reple'}).find('p')
for span in reple.findAll('span'):
span.extract()
reple = reple.text
print("reple: {}, score: {}".format(reple, score))
if (valueList == blankList):
break
所以我遇到的问题有点简单。您可能会知道这部分不起作用
valueList = bs.findAll("input",{'value':"{}"}).format(str(page))
假设最大页码为 100,当我在 variable 页面中输入 20 时,
url = "http://movie.naver.com/movie/bi/mi/pointWriteFormList.nhn?code=99715&type=after&isActualPointWriteExecute=false&isMileageSubscriptionAlready=false&isMileageSubscriptionReject=false&page={}".format(page)
这部分没有问题,当我在这里输入20时(实际页码)
valueList = bs.findAll("input",{'value':"{}"}).format(str(page))
它会返回这个列表。
['input id="page" name="page" type="hidden" value="20"/>]
但是当我尝试输入 200 时(在他们两个中) 第一个代码不会显示错误,但是
valueList = bs.findAll("input",{'value':"{}"}).format(str(page))
返回空白列表,因为没有200页码。
我需要的是:
-
提取此列表中
value的值,并将其设置为变量。 在这个列表中,我需要的是 87。['input id="page" name="page" type="hidden" value="87"/>]
或
-
有没有办法将变量放入
findAll函数中?- 当我运行这段代码时会弹出这个列表
bs.findAll("input"):['input type="hidden" name="onlyActualPointYn" id="onlyActualPointYn" value="N">, 'input type="hidden" name="movieCode" id="movieCode" value="99715" >, 'input type="hidden" name="order" id="order" value="sympathyScore">, 'input type="hidden" name="page" id="page" value="75">, 'input type="hidden" name="point" id="point" value="0">]
- 当我运行这段代码时会弹出这个列表
【问题讨论】:
标签: python beautifulsoup