1.23

我晕了

难道今天就要告一段落了吗

今天。。。只跟着老师爬了。。。一个猫眼电影。。。第二个。。爬头条那个我。。。看一半看不懂就开始玩了。。。我晕。。

中间跳了挺多的

【再次声明】代码大量来自bilibili网课:零基础入门python3爬虫   少量来自百度百科

DAY5

今天想开始直接爬虫

我们先要有整体的逻辑 就是爬虫的步骤↓

首先→爬取单个网页(按照老师的课程 第一次先用requests库)

细节:

首先用requests库里的get请求,必要时里面要加请求头,让网站认为是浏览器请求的,然后通过状态码来判断返回,记住还要加一个异常处理。

其次→解析爬取的网页(第一次课用正则表达式 因为我前面的偷懒可能还要回去看正则表达式的视频)

蓝后→保存到文件

最后→开启循环 把几页的内容全存下来

 

跟着老师爬了猫眼电影排行榜top100

import requests

import re

from requests.exceptions import RequestException

import json

 

#爬取单个网页

def get_onepage(url):                 

       try:

              headers = {

       'User-agent':

       'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'

}    #加入请求头使得网页认为是浏览器发送的请求

              response = requests.get(url,headers=headers)

              if response.status_code == 200:

                     return response.text

              return None

       except RequestException:            #异常处理

              return None

 

 

def parse_onepage(html):

       #新引入正则表达式

       pattern = re.compile('<dd>.*?board-index.*?">(\d+)</i>.*?title="(.*?)".*?data-src="(.*?)".*?'

                                          +'class="star">(.*?)</p>.*?time">(.*?)</p>.*?</dd>',re.S)

       items = re.findall(pattern,html)

       for item in items:

              yield {

                     '排名':item[0],

                     '片名':item[1],

                     '封面链接':item[2],

                     '主演':item[3].strip()[3:],

                     '上映时间':item[4].strip()[5:]

              }

 

def write_in(content):

       with open('‪1.txt','a',encoding = 'utf-8') as f:

              f.write(json.dumps(content,ensure_ascii=False) + '\n')

              f.close()

 

 

 

def main(offset):

       url='https://maoyan.com/board/4?offset='+str(offset)

       html = get_onepage(url)

       for item in parse_onepage(html):

              print(item)

              write_in(item)

 

if __name__ == '__main__':

       for i in range(10):

              main(i*10)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值