【头歌】——数据分析与实践-python-网络爬虫-Scrapy爬虫基础-网页数据解析-requests 爬虫-JSON基础

这篇具有很好参考价值的文章主要介绍了【头歌】——数据分析与实践-python-网络爬虫-Scrapy爬虫基础-网页数据解析-requests 爬虫-JSON基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Pandas 初体验

第1关 爬取网页的表格信息

import requests
from bs4 import BeautifulSoup
#代码开始
respose = requests.get("https://tjj.hunan.gov.cn/hntj/tjfx/tjgb/pcgbv/202105/t20210519_19079329.html")
respose.encoding = 'utf-8'
content = respose.text.encode()
soup = BeautifulSoup(content, "html.parser")
bg = soup.find('table')
#代码结束
print(bg)

第2关 爬取表格中指定单元格的信息

import requests
from bs4 import BeautifulSoup
url = "https://tjj.hunan.gov.cn/hntj/tjfx/tjgb/pcgbv/202105/t20210519_19079329.html"
r=requests.get(url)
r.encoding = 'utf-8' 
soup=BeautifulSoup(r.text,"html.parser")
bg=soup.find('table')
#代码开始
alltr = bg.findAll('tr')
for index, i in enumerate(alltr, 1):  # 使用enumerate获取索引
    if index >= 4:  # 从第四行开始输出
        allspan = i.findAll('span')
        for count, j in enumerate(allspan,1):
                print(j.text,end=" ")
        print()  # 在第二个循环结束后换行
#代码结束

第3关 将单元格的信息保存到列表并排序

import requests
from bs4 import BeautifulSoup
url = "https://tjj.hunan.gov.cn/hntj/tjfx/tjgb/pcgbv/202105/t20210519_19079329.html"
r=requests.get(url)
r.encoding = 'utf-8' 
soup=BeautifulSoup(r.text,"html.parser")
bg=soup.find('table')
lb=[]
#代码开始
name_num = {}
use = []
alltr = bg.findAll('tr')
for index, i in enumerate(alltr, 1):  # 使用enumerate获取索引
    if index >= 4:  # 从第四行开始输出
        allspan = i.findAll('span')
        name = allspan[0].text
        num = allspan[1].text
        name_num[name] = int(num)  
        use.append(int(num))
use.sort(reverse=True)
 
lb = [ [k,v] for k,v in sorted(name_num.items(),key=lambda item: use.index(item[1]))]
 
 
#代码结束
for lbxx in lb:
    print(lbxx[0],lbxx[1])

第4关 爬取div标签的信息

import requests
from bs4 import BeautifulSoup
url = 'https://www.hnu.edu.cn/xysh/xshd.htm'
r = requests.get(url)
r.encoding = 'utf-8'
#代码开始
soup = BeautifulSoup(r.text,'html.parser')
jzsj = soup.find('div',class_= 'xinwen-sj-top').string.strip()
jzbt = soup.find('div',attrs={'class','xinwen-wen-bt'}).string.strip()
jzdd = soup.find('div',attrs={'class','xinwen-wen-zy'}).text.strip()
#代码结束
f1=open("jzxx.txt","w")
f1.write(jzsj+"\n")
f1.write(jzbt+"\n")
f1.write(jzdd+"\n")
f1.close()

第5关 爬取单页多个div标签的信息

import requests
from bs4 import BeautifulSoup
url = 'https://www.hnu.edu.cn/xysh/xshd.htm'
r = requests.get(url)
r.encoding = 'utf-8'
jzxx=[]
#代码开始
#代码结束
f1=open("jzxx2.txt","w")
for xx in jzxx:
    f1.write(",".join(xx)+"\n")
f1.close()

第6关 爬取多个网页的多个div标签的信息

#湖南大学信科院陈娟版权所有
import requests
from bs4 import BeautifulSoup
f1=open("jz.txt","w",encoding="utf8")
#代码开始
#代码结束
f1.close()





Scrapy爬虫基础

第1关 Scarpy安装与项目创建

#include <iostream>
using namespace std ;
int main (){
    int x ; cin >> x ; 
    while(x--){
     scrapy genspider Hello www.educoder.net   
    }
    return 0 ; 
}

第2关 Scrapy核心原理

# -*- coding: utf-8 -*-
import scrapy

class WorldSpider(scrapy.Spider):
    name = 'world'
    allowed_domains = ['www.baidu.com']
    start_urls = ['http://www.baidu.com/']

    def parse(self, response):
        # ********** Begin *********#
        # 将获取网页源码本地持久化
        baidu = response.url.split(".")[1] + '.html'
        with open(baidu, 'wb') as f:
            f.write(response.body)
        # ********** End *********#




网页数据解析

第1关 XPath解析网页

import urllib.request

from lxml import etree

def get_data(url):
    '''
    :param url: 请求地址
    :return: None
    '''
    response=urllib.request.urlopen(url=url)
    html=response.read().decode("utf-8")
    # *************** Begin *************** #
    parse= etree.HTML(html)
    item_list = parse.xpath("//div[@class='left']/ul/li/span/a/text()")

    # *************** End ***************** #

    print(item_list)

第2关 BeautifulSoup解析网页

import requests
from bs4 import BeautifulSoup

def get_data(url, headers):
    '''
    两个参数
    :param url:统一资源定位符,请求网址
    :param headers:请求头
    :return data:list类型的所有古诗内容
    '''
    # ***************** Begin ******************** #
    obj=requests.get(url)
    soup=BeautifulSoup(obj.content,"lxml",from_encoding="utf-8")
    ##data=soup.find("div",class_="left").find('p')
    data=soup.find("div",class_='left').ul.find_all("li")
    data = [i.p.text for i in data]

    
    # ****************** end ********************* #
    return data




requests 爬虫

第1关 requests 基础

import requests


def get_html(url):
    '''
    两个参数
    :param url:统一资源定位符,请求网址
    :param headers:请求头
    :return:html
    '''
    
    # ***************** Begin ******************** #

    # 补充请求头
    headers={}
    # get请求网页
    header={
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
    }

    res= requests.get(url ,headers=header)
    res.encoding = 'utf-8'
    html=res.text



    


    
    # 获取网页信息文本
    
    # ***************** End ******************** #
    return html

第2关 requests 进阶

import requests


def get_html(url):
    '''
    两个参数
    :param url:统一资源定位符,请求网址
    :param headers:请求头
    :return html 网页的源码
    :return sess 创建的会话
    '''
    
    # ***************** Begin ******************** #
    
    # 补充请求头
    headers={
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36"

    }
    # 创建Session, 并使用Session的get请求网页
    sess = requests.session()
    data = {
        "name":"hblgysl",
        "password":"hblgzsx",
    }
    res = sess.post(url,headers=headers,data=data)
    res1 = sess.get(url)
    html=res1.text

    
    # 获取网页信息文本
    
    # ****************** End ********************* #
    return html, sess



JSON基础

第1关 JSON篇:JSON基础知识

{
  "students": [
    { "name": "赵昊", "age": 15, "ismale": true },
    { "name": "龙傲天", "age": 16, "ismale": true },
    { "name": "玛丽苏", "age": 15, "ismale": false }
  ],
  "count": 3
}

第2关 JSON篇:使用json库

import json
 
def Func():
    data = open("step2/2017.txt","r",encoding = "utf-8")
 
    obj = json.load(data)
 
    data.close()
    
    #********** Begin *********#
    obj={
    "count":4, 
    "infos":
        [
            {"name":"赵昊" , "age":16 ,"height": 1.83, "sex" : "男性" },
            {"name":"龙傲天" , "age":17 ,"height": 2.00, "sex" : "男性"},
            {"name":"玛丽苏" , "age":16 ,"height": 1.78, "sex" : "女性"},
            {"name":"叶良辰" , "age":17 ,"height": 1.87, "sex" : "男性"}
        ]
    }
    #********** End **********#
    output = open("step2/2018.txt","w",encoding = "utf-8")
    json.dump(obj,output) #输出到文件
    output.close()



文章来源地址https://www.toymoban.com/news/detail-815204.html

到了这里,关于【头歌】——数据分析与实践-python-网络爬虫-Scrapy爬虫基础-网页数据解析-requests 爬虫-JSON基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Python的网络爬虫爬取天气数据可视化分析

    目录 摘 要 1 一、 设计目的 2 二、 设计任务内容 3 三、 常用爬虫框架比较 3 四、网络爬虫程序总体设计 3 四、 网络爬虫程序详细设计 4 4.1设计环境和目标分析 4 4.2爬虫运行流程分析 5 爬虫基本流程 5 发起请求 5 获取响应内容 5 解析数据 5 保存数据 5 Request和Response 5 Request 5

    2024年02月08日
    浏览(51)
  • 基于python淘宝商品数据爬虫分析可视化系统 网络爬虫+Flask框架+MySQL数据库 大数据 毕业设计

    python语言、Flask框架、淘宝商品数据、selenium网络爬虫、MySQL数据库、数据分析、Echarts可视化大数据毕业设计、爬取 Selenium网络爬虫淘宝商品数据可视化系统是一个基于Python和Selenium的Web爬虫应用程序,可以实现对淘宝上特定商品的价格、销量、评价等数据进行自动化抓

    2024年02月16日
    浏览(53)
  • 〖Python网络爬虫实战㉔〗- Ajax数据爬取之Ajax 分析案例

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月07日
    浏览(72)
  • python大数据作业-客户价值分析-实训头歌

    一、实验目的与要求 1、掌握使用numpy和pandas库处理数据的基本方法。 2、掌握使用RFM分析模型对客户信息进行特征提取的基本方法。 3、掌握对特征数据进行标准化处理的基本方法。 4、掌握使用Sklearn库对K-Means聚类算法的实现及其评价方法。 5、掌握使用matplotlib结合pandas库对

    2023年04月17日
    浏览(37)
  • 基于Python的网络爬虫及数据处理---智联招聘人才招聘特征分析与挖掘的算法实现

    收藏和点赞,您的关注是我创作的动力   随着科学技术的发展,人类进入了互联网时代,不仅数据量庞大,而且数据种类繁多,Python简单易学, 语法清晰,在数据操作方面有着一定优势,成为了数据采集和可视化领域的热门语言。本论文主要是使用Python来作为开发语言,并

    2024年02月03日
    浏览(55)
  • 头歌平台python数据分析——(9)Matplotlib图形配置

    ,根据输入数据绘制热成像图并隐藏坐标轴,具体要求如下: 图形的figsize为(10, 10); 图形保存到Task1/img/T1.png。 根据函数参数file_name读取文件,统计每年births的总和并作折线图,为最高/最低出生数年份设置注释,具体要求如下: 对数据进行去空值处理; 注释文字的坐标位置

    2024年02月10日
    浏览(158)
  • Python网络爬虫逆向分析爬取动态网页、使用Selenium库爬取动态网页、​编辑将数据存储入MongoDB数据库

    目录 逆向分析爬取动态网页 了解静态网页和动态网页区别 1.判断静态网页  2.判断动态网页  逆向分析爬取动态网页 使用Selenium库爬取动态网页 安装Selenium库以及下载浏览器补丁 页面等待  页面操作 1.填充表单 2.执行JavaScript 元素选取 Selenium库的find_element的语法使用格式如下

    2024年02月15日
    浏览(118)
  • 基于python的网络爬虫爬取天气数据及可视化分析(Matplotlib、sk-learn等,包括ppt,视频)

    基于python的网络爬虫爬取天气数据及可视化分析 可以看看演示视频。 基于Python爬取天气数据信息与可视化分析 本论文旨在利用Python编程语言实现天气数据信息的爬取和可视化分析。天气数据对于人们的生活和各个领域都有着重要的影响,因此准确获取和有效分析天气数据对

    2024年02月03日
    浏览(49)
  • 基于网络爬虫的天气数据分析

    网络爬虫原理   网络爬虫是一种自动化程序,用于从互联网上获取数据。其工作原理可以分为以下几个步骤: 定义起始点:网络爬虫首先需要定义一个或多个起始点(URL),从这些起始点开始抓取数据。 发送HTTP请求:爬虫使用HTTP协议向目标网站发送请求,获取网页内容。

    2024年01月19日
    浏览(47)
  • 基于网络爬虫的租房数据分析系统

    python scrapy bootstrap jquery css javascript html 租房信息数据展示 租房地址数量分布 租房类型统计 租房价格统计分析 租房面积分析 房屋朝向分析 房屋户型平均价格统计分析 房屋楼层统计分析 房屋楼层与价格统计分析 房屋地址与价格统计分析 房屋相关信息词云展示 项目背景: 随

    2024年01月16日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包