使用Python和BS4循环抓取多个页面

使用Python和BS4循环抓取多个页面,python,web-scraping,beautifulsoup,urllib,Python,Web Scraping,Beautifulsoup,Urllib,我是一名学生记者,对python还不熟悉。我一直在试图找出如何使用for循环在我所在大学的每日犯罪日志的所有当前页面上刮取每个犯罪日志。然而,它只是在抓取第一页。我一直在看别人的密码和问题,但我真的不知道我遗漏了什么。谢谢你的帮助 导入urllib.request 导入请求 导入csv 进口bs4 将numpy作为np导入 作为pd进口熊猫 从导入数据帧 对于范围内的num(27):#寻呼机数加上 url=(”http://police.psu.edu/daily-crime-log?fiel

我是一名学生记者,对python还不熟悉。我一直在试图找出如何使用for循环在我所在大学的每日犯罪日志的所有当前页面上刮取每个犯罪日志。然而,它只是在抓取第一页。我一直在看别人的密码和问题,但我真的不知道我遗漏了什么。谢谢你的帮助

导入urllib.request
导入请求
导入csv
进口bs4
将numpy作为np导入
作为pd进口熊猫
从导入数据帧
对于范围内的num(27):#寻呼机数加上
url=(”http://police.psu.edu/daily-crime-log?field_reported_value[值]&页=0“。格式(num))
r=请求。获取(url)
source=urllib.request.urlopen(url.read())
bs_tree=bs4.beautifulsou(来源,“lxml”)
事件\u nums=bs\u tree.findAll(“div”,class=“views field title”)
发生=bs_tree.findAll(“div”,class=“views field-views field-occurrent”)
reported=bs_tree.findAll(“div”,class=“field-view-field-reported”)
事件=bs_tree.findAll(“div”,class_uviews=“事件的现场性质”)
违规行为=bs_tree.findAll(“div”,class_uviews=“现场违规行为”)
locations=bs_tree.findAll(“div”,class=“views field view field location”)
处置=bs_tree.findAll(“div”,class=“field view field case处置”)
allCrimes=pd.DataFrame(列=['Incident#','Recursed','reported','nature of Incident','offenses','location','disposition'])
总计=len(事件数量)
计数=0

虽然(count跟随别人的例子不一定是不好的做法,但你需要检查你添加的东西是否有效,至少在你获得信心之前是这样

例如,如果您尝试自己运行这个For循环

>>> for num in ('29'):
...     num
...     
'2'
'9'
您可以看到Python将num中的'2'替换为'9'。这不是您想要的

如果我遵循您的指导,检查了该站点,我会发现存在第0页到第26页。我可以对范围(27)
中的num进行编码。
。如果初始值为零,则循环将比我给出的值小一个。在请求URL的语句中,您需要将该整数值转换为字符串值(格式化)

在循环中执行多次,但没有保留任何内容!如果希望在循环中执行其他语句,则需要对它们进行缩进(或者在提交代码时发生缩进)

在这之后我不清楚你在做什么