BeautifulSoup技术爬取豆瓣TOP250

爬取豆瓣top250

1.环境:VS2019
2.首先安装re, BeautifulSoup,codecs,requests库,可以用 pip安装
功能:将top250的电影名,评分,评价人数,链接,影评获取下来并生成.html文件 效果如图:

BeautifulSoup技术爬取豆瓣TOP250_第1张图片
先展示爬虫函数:

def pachong(url):
   cc = requests.get(url,headers=headers)
   cc=cc.text
   cc = BeautifulSoup(cc,"html.parser")
   print(u'豆瓣top250 \n')
   for tag in cc.find_all(attrs={"class":"item"}):
       shu = tag.find('em').get_text() #序号
       print (shu)
       outf.write(u""+ shu)

       name = tag.find_all(attrs={"class":"title"}) #中文名称
       zname = name[0].get_text()
       print (u'[名称]',zname)
       outf.write(u""+ zname)

       urlm = tag.find(attrs={"class":"hd"}).a  #链接
       urls = urlm.attrs['href']
       print (u'[链接]',urls)
       outf.write(u""+urls)

       ping = tag.find(attrs={"class":"star"}).get_text() #评分评论
       ping = ping.replace('\n',' ')
       ping = ping.lstrip()
       mode = re.compile(r'\d+\.?\d*')
       mm = mode.findall(ping)
       k=0
       for n in mm:
           if k==0:
               print (u"[分数]"+n)
               outf.write(u"" + n)
           elif k==1:
               print (u"[评论人数]"+n)
               outf.write(u"" +n)
           k=k+1
       
       yu = tag.find(attrs={"class":"inq"}) #评语
       if(yu):
           content = yu.get_text()
           print (u'[评语]',content)
           outf.write(u"")
           outf.write(content)
           outf.write(u""+"\n")

注意:1.爬取豆瓣网时需要有请求头
2.此处用的beautifsoup技术进行爬取
3.写入的文件的是.html所以有等写入文件,这是.html语言

因为一个网页只有部分电影所以需要翻页爬取,顾在主函数时要多次调用pachong函数
完整代码见下一篇博客。

你可能感兴趣的:(BeautifulSoup技术爬取豆瓣TOP250)