博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
豆瓣即将上映电影爬虫作业
阅读量:6168 次
发布时间:2019-06-21

本文共 2435 字,大约阅读时间需要 8 分钟。

https://study.163.com/course/courseLearn.htm?courseId=1005913008#/learn/text?lessonId=1053258283&courseId=1005913008

把豆瓣“即将上映”的电影爬出来。

很简陋的代码,现在的知识只能写这样了,做个记录吧。以后有能力再完善。

1 # coding=gbk 2 #  豆瓣即将上映的电影 3 # https://movie.douban.com/cinema/later/changsha/爬取这个页面的信息吧 4  5 import requests 6 from bs4 import BeautifulSoup 7 import json 8  9 10 def get_page():11     url = 'https://movie.douban.com/cinema/later/changsha/'12     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"}13 response = requests.get(url, headers, verify=False)14 text = response.text15 return text16 17 18 def get_data(text):19 movies = []20 soup = BeautifulSoup(text, 'lxml')21 # class="item mod " class="item mod odd"有两个都是的。22 # 第一种思路,直接分开成两个来处理23 divList1 = soup.find_all('div', attrs={
'class': "item mod "})24 divList2 = soup.find_all('div', attrs={
'class': "item mod odd"})25 # 合并两个list26 divList = divList1+divList227 '''28
29
30 31 32
33

34 大黄蜂35 36

37
  • 01月04日
  • 38
  • 动作 / 科幻 / 冒险
  • 39
  • 美国
  • 40
    '''41 for div in divList:42 movie = {}43 thumb = div.find('img')['src']44 # print(thumb)45 # 获取所有a标签,其中第二个a标签里是电影名46 title = div.find_all('a')[1].text47 # print(title)48 # 有些电影里没有类型这列,所有要考虑下,不能直接赋值类型49 li_tag = div.find_all('li')50 if len(li_tag)==4:51 date = li_tag[0].text52 type = li_tag[1].text53 area = li_tag[2].text54 want = li_tag[3].text55 else:56 date = li_tag[0].text57 type = ''58 area = li_tag[1].text59 want = li_tag[2].text60 61 # print(date)62 movie['title'] = title63 movie['thumb'] = thumb64 movie['date'] = date65 movie['type'] = type66 movie['area'] = area67 movie['want'] = want68 movies.append(movie)69 return movies70 71 72 def save_text(data):73 with open('douban2.json', 'w', encoding='utf-8') as fp:74 json.dump(data, fp, ensure_ascii=False)75 76 77 if __name__ == '__main__':78 text = get_page()79 data = get_data(text)80 save_text(data)

     

    两个li标签的区别

    或者以后可以参考https://www.jianshu.com/p/c64fe2a20bc9,这个代码写的可以借鉴。

    转载于:https://www.cnblogs.com/weiwei2016/p/10162660.html

    你可能感兴趣的文章
    无废话WCF入门教程三[WCF的宿主]
    查看>>
    .NET 中易混淆的概念(Delegate vs Event)
    查看>>
    windows批处理 打开exe后关闭cmd
    查看>>
    Flask开发系列之快速入门
    查看>>
    公共语言运行时支持(/clr)
    查看>>
    spring集成shiro登陆流程(上)
    查看>>
    android:configChanges属性在不同版本SDK下需要注意的事项
    查看>>
    邻接表理解
    查看>>
    javascript-继承之jquery
    查看>>
    深入理解 KVC\KVO 实现机制 — KVC
    查看>>
    [转载]android开发手册
    查看>>
    PHPCMS列表页伪静态
    查看>>
    “System.IO.FileNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生
    查看>>
    SDUT 3002-素数间隙(素数筛+暴力)
    查看>>
    用php读取xml数据
    查看>>
    闽江学院软件学院2015级学生职业人物访谈
    查看>>
    npm教程_脚手架原理以及bootstrap引入
    查看>>
    琪露诺
    查看>>
    workqueue原理和分析(转)
    查看>>
    实现一些字符串操作标准库函数、解决一些字符串问题
    查看>>