我试图废弃一些电影评论和评分,如果没有更多评论和评分,我试图结束此代码。
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“>]
答案 0 :(得分:0)
请更改下面提到的行
valueList = bs.findAll("input",{'value':"{}".format(str(page))})
此程序不会退出,因为每个页码都是此网址的有效页码。如果你五个777777777,它也是一个有效的页码。你可以在浏览器中试试。
输出:
reple: 이영화 시사회에서 봤는데 15세는 진짜 말이 안된다. 그래도 엄청 재밌습니다. , score: 10