快捷搜索:  汽车  科技

python爬虫实战之路(Python数据分析之爬虫第一练)

python爬虫实战之路(Python数据分析之爬虫第一练)下面,请您开始写出自己的爬虫吧,一起动起来!爬取结果关于网页页面分析的内容可以自己百度下,相关知识比较简单,这里不做赘述。概括下就是:F12页面# 练习1:爬取新闻联播文本信息 #!/usr/bin/Python # -*- coding: UTF-8 -*- import os os.chdir('D:/3.DA/Finance Bigdata mining and analysis with Python') # 变更工作目录 os.getcwd() # 获取当前工作目录 import requests as req import re # UA代表访问网站的浏览器是哪种浏览器,可以通过在地址栏中输入“about:version”获取 # “\”是行连接符 headers = {'User-Agent': 'Mo

背景

最近我大A行情拉跨,很多朋友都陷入迷茫,不知该如何是好,其实,有一条圣经始终生效“跟着新闻联播选题材”是胜率极大的。

为了能够及时获取相关新闻的文字内容,于是自己动手写了个爬虫,以下enjoy。

数据源

要爬取的源目标就是新闻联播的官网,如下图所示。

python爬虫实战之路(Python数据分析之爬虫第一练)(1)

新闻联播网页

页面分析

关于网页页面分析的内容可以自己百度下,相关知识比较简单,这里不做赘述。概括下就是:

  1. Chrome浏览器打开网页,按下F12,弹出如下的页面;
  2. 点击弹出页面左上角的箭头,则可以互动查看页面对应内容的源码;
  3. 确定对应的数据定位规则。

python爬虫实战之路(Python数据分析之爬虫第一练)(2)

F12页面

爬虫源码

# 练习1:爬取新闻联播文本信息 #!/usr/bin/Python # -*- coding: UTF-8 -*- import os os.chdir('D:/3.DA/Finance Bigdata mining and analysis with Python') # 变更工作目录 os.getcwd() # 获取当前工作目录 import requests as req import re # UA代表访问网站的浏览器是哪种浏览器,可以通过在地址栏中输入“about:version”获取 # “\”是行连接符 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) \ AppleWebkit/537.36 (KHTML like Gecko) \ Chrome/100.0.4896.127 Safari/537.36'} # 新闻联播网址 cctv1_url = 'https://tv.cctv.com/lm/xwlb/index.shtml?spm=C28340.PKIGaXubtUxb.EzxTCLEMTepF.4' cctv1_web = req.get(cctv1_url headers=headers) #print(cctv1_web.apparent_encoding) cctv1_web.encoding = cctv1_web.apparent_encoding # 为了防止中文乱码,将页面编码赋值给输出编码 cctv1_web = str(cctv1_web.text) # 在进行了编码转换后,得到的数据为bytes,需要转换成str才可以进行后续爬取 #print(cctv1_web) # 打印页面内容text # Step 1 提取新闻标题、网址、来源和日期信息 web_title = '<div class="image"><a href.*?title="(.*?)"><img src=' web_href = '<div class="image"><a href="(.*?)"' web_date = '<div class="image"><a href="https://tv.cctv.com/(.*?)/V' title = re.findall(web_title cctv1_web re.S) href = re.findall(web_href cctv1_web re.S) date = re.findall(web_date cctv1_web re.S) # Step 2 数据清洗 for i in range(len(title)): title[i] = title[i].strip() # 用strip()函数把不需要的空格和换行符去掉 title[i] = re.sub('<.*?>' '' title[i]) # 用sub()函数处理<em>和</em> href[i] = href[i] date[i] = date[i].strip() # i从0开始是数字,所以字符串拼接时要用str()函数进行转换 print(str(i 1) '.' title[i] '(' date[i] ')') print(href[i])

python爬虫实战之路(Python数据分析之爬虫第一练)(3)

正则表达式

爬取结果

python爬虫实战之路(Python数据分析之爬虫第一练)(4)

爬取结果

一起动手

下面,请您开始写出自己的爬虫吧,一起动起来!

猜您喜欢: