Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接

目录

  • 使用工具
  • 准备步骤
        • 1. Anaconda Navigator
        • 2. 安装chrome_Xpath_v2.0.2
        • 3. 使用chrome_Xpath_v2.0.2
  • 环境搭建
  • 代码示例
  • 效果展示

使用工具

PyCharm 2018.2.3
Anaconda Navigator
Python 3.6
谷歌浏览器插件:chrome_Xpath_v2.0.2
微云下载链接:https://share.weiyun.com/5iE161Y

准备步骤

1. Anaconda Navigator

打开Anaconda Navigator,创建一个Python 3.6的运行环境
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第1张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第2张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第3张图片
在 Anaconda Navigator中安装 对应的Python库
要 安装 gevent库、 xlwt库、 etree库、requests库
以下是安装库的方法。
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第4张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第5张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第6张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第7张图片
安装成功
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第8张图片

如果需要使用命令行进行安装
选择Open Terminal
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第9张图片安装方法:pip3 install 模块名

Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第10张图片

2. 安装chrome_Xpath_v2.0.2

打开谷歌浏览器 找到自定义及控制
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第11张图片
选择扩展程序
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第12张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第13张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第14张图片
安装完成
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第15张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第16张图片

3. 使用chrome_Xpath_v2.0.2

使用F12,打开 谷歌浏览器 开发者工具
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第17张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第18张图片
选择:Copy XPathPython爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第19张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第20张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第21张图片

环境搭建

打开PyCharm
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第22张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第23张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第24张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第25张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第26张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第27张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第28张图片
Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第29张图片

代码示例

#_*_coding:utf-8_*_
# @Author: VVcat
# @Time: 2019/9/27 18:54
# @File: Main.py
# @IDE: PyCharm
# @Email: [email protected]
# @Version: 1.0

import gevent
import xlwt as xlwt
from lxml import etree
import requests


def school():
    xls = xlwt.Workbook(encoding='utf-8')  # 创建一个工作簿,括号中为编码方式

    # 创建sheet表
    # 括号中cell_overwrite_ok=True是为了可以让用户在同一单元格重复写内容,但只保留生效最后一次写入
    sheet = xls.add_sheet("school", cell_overwrite_ok=True)
    row = 0

    for index in range(1, 330):  # 页面有329页
        if index == 1:
            url = "http://www.zjitc.net/xwzx/xyxw.htm"  # 第一页的链接
        else:
            url = "http://www.zjitc.net/xwzx/xyxw/" + str(index - 1) + ".htm"  # 第一页之后的链接
        req = requests.get(url)  # 请求获取页面HTML代码
        resp = req.content.decode("utf-8")  # 设置页面编码格式为utf-8
        html = etree.HTML(resp)  # 构造了一个XPath解析对象并对HTML文本进行自动修正。
        uls = html.xpath("/html/body/div[3]/div[8]/div[2]/div/ul/li/a/div[2]/div")  # 对内容进行定位,获取所有的 内容存放在 list集合里
        for ul in uls:  # 对集合进行遍历
            title = ul.xpath("h3")  # 获取标题
            url = str(title[0].xpath("../../../@href")[0])  # 获取新闻链接
            url = url.replace("../..", "http://www.zjitc.net")  # 对新闻链接进行分割拼接
            day = ul.xpath("../../div[1]/i")  # 获取天数
            month = ul.xpath("../../div[1]/em")  # 获取月份
            sheet.write(row, 0, title[0].text)  # 将标题写入excel
            sheet.write(row, 1, month[0].text + day[0].text + "日")  # 将日期写入excel
            sheet.write(row, 2, url)  # 将链接写入excel
            row += 1
        xls.save("school.xls")  # 为excel文件命名

if __name__ == '__main__':
    school = gevent.spawn(school)  # 将函数放入到python协程中
    school.join()  # 开启协程

效果展示

Python爬虫爬取部分学校的新闻标题、时间、对应的新闻链接_第30张图片

你可能感兴趣的:(Python)