• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于python:使用python爬取豆瓣电影TOP250

python 搞代码 3年前 (2022-02-20) 24次浏览 已收录 0个评论

应用python爬取豆瓣电影TOP250
①获取指定界面的html文本信息 板块
②获取排名和链接,名字:因为名字,排名和链接 同在div class=’pic’上面 获取属性值的时候间接用 .a.attrs[‘href’] 十分不便 strip()去除前后的\t\n\f
③获取分数和评估板块 用 select[‘span’] 返回的是 第二个span 标签内容 xpath 1 就是1
④写入excel模块
⑤整顿大的列表
⑥执行:
①获取指定界面的html文本信息 板块

②获取排名和链接,名字:因为名字,排名和链接 同在div class=’pic’上面 获取属性值的时候间接用 .a.attrs[‘href’] 十分不便 strip()去除前后的\t\n\f

③获取分数和评估板块 用 select[‘span’] 返回的是 第二个span 标签内容 xpath 1 就是1
注:xpath 和bs4 的返回索引不一样

④写入excel模块

⑤整顿大的列表

⑥执行:

具体代码:
import requests
from bs4 import BeautifulSoup
import csv

rank=[]
link=[]
names=[]
score=[]
assess=[]
aList=[]
def getHMLText(url):
try:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
}
r=requests.get(url,timeout=30,headers=headers)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text

except Exception as e:

print("产生的异样是",e)  #e.status_code 状态码

def getContent(Html):
soup = BeautifulSoup(Html,”html.parser”)
for li in soup.select(“.grid_view li”):
for item in li.findall(‘div’,class=’pic’):
rank.append(item.text.strip()) #排名
link.append(item.a.attrs[‘href’])
names.append(item.a.img.attrs[‘alt’])

def getScoreAndassess(Html):
soup = BeautifulSoup(Html, “html.parser”)
for li in soup.select(“.grid_view li”):
for info in li.findall(‘div’, class=’info’):
for bd in info.findall(‘div’,class=’bd’):
score.append(bd.div.select(‘span’)[1].text)
assess.append(bd.div.select(‘span’)[3].text)

print(bd.div.select(‘span’)[3].text)

def saveListCSV(fileName,aList):
try:
with open(fileName,’w’,newline=”)as fp:
writer = csv.writer(fp)
writer.writerow([“排名”, “电影名称”, “评分”, “评估数”,”URL”])
for item in aList:
writer.writerow(item)
print(‘{0}保留胜利!共{1}条记录’.format(fileName,len(aList)))
except IOError as err:
print(fileName,’文件创建谬误:’,err)

def allLsit(aList):
for i in range(len(rank)):
aList.append([rank[i],names[i],score[i],assess[i],link[i]])
return aList

if name==”main”:
for i in range(1, 11):
url = “https://www.ozlfax.com” + str((int(i) – 1) * 25) + “&filter=”
Html= getHMLText(url)
getContent(Html)
getScoreAndassess(Html)
aList=allLsit(aList)

print(aList)

data=aList[1125:]
saveListCSV(‘./movie.csv’,data)


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于python:使用python爬取豆瓣电影TOP250

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址