Python第二题总是错误

zx2017kf 2017-12-17 09:43:56
他的答案是这样的
from bs4 import BeautifulSoup
path = './1_2_homework_required/index.html' #这里使用了相对路径,只要你本地有这个文件就能打开

with open(path, 'r') as wb_data: # 使用with open打开本地文件
soup = BeautifulSoup(wb_data, 'lxml') # 解析网页内容
# print(wb_data)

titles = Soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a') # 复制每个元素的css selector 路径即可
images = Soup.select('body > div > div > div.col-md-9 > div > div > div > img')
reviews = Soup.select('body > div > div > div.col-md-9 > div > div > div > div.ratings > p.pull-right')
prices = Soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4.pull-right')
stars = Soup.select('body > div > div > div.col-md-9 > div > div > div > div.ratings > p:nth-of-type(2)')
# 为了从父节点开始取,此处保留:nth-of-type(2),观察网页,多取几个星星的selector,就发现规律了

# print(titles,images,rates,prices,stars,sep='\n--------\n') # 打印每个元素,其中sep='\n--------\n'是为了在不同元素之间添加分割线

for title, image, review, price, star in zip(titles, images, reviews, prices, stars): # 使用for循环,把每个元素装到字典中
data = {
'title': title.get_text(), # 使用get_text()方法取出文本
'image': image.get('src'), # 使用get 方法取出带有src的图片链接
'review': review.get_text(),
'price': price.get_text(),
'star': len(star.find_all("span", class_='glyphicon glyphicon-star'))
# 观察发现,每一个星星会有一次<span class="glyphicon glyphicon-star"></span>,所以我们统计有多少次,就知道有多少个星星了;
# 使用find_all 统计有几处是的样式,第一个参数定位标签名,第二个参数定位css 样式,具体可以参考BeautifulSoup 文档示例http://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#find-all;
# 由于find_all()返回的结果是列表,我们再使用len()方法去计算列表中的元素个数,也就是星星的数量
}
print(data)

我自己对照写是这样的
from bs4 import BeautifulSoup

with open('file:///C:/Users/Administrator/Desktop/new_index.html','r')as wb_data:
Soup=BeautifulSoup(wb_data,'lxml')
print(Soup)
显示错误
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe C:/Users/Administrator/.PyCharm2017.1/config/scratches/scratch.py
Traceback (most recent call last):
File "C:/Users/Administrator/.PyCharm2017.1/config/scratches/scratch.py", line 3, in <module>
with open('file:///C:/Users/Administrator/Desktop/new_index.html','r')as wb_data:
OSError: [Errno 22] Invalid argument: 'file:///C:/Users/Administrator/Desktop/new_index.html'

Process finished with exit code 1
是不是path路径写错了,看到论坛有些说必须将本地网页放到和python同一个盘或者都放到桌面才行,是不是这样?
...全文
203 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2017-12-19
  • 打赏
  • 举报
回复

with open('C://Users//Administrator//Desktop//new_index.html','r') as wb_data:
然后就是你当前用户是不是是Administrator帐号

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧