栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫之东方财富网站学习笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫之东方财富网站学习笔记

目标:爬取东方财富网站数据

步骤:1.分析网站页面内容 确定爬取的具体目标

           2.查阅资料进行代码和思路学习

           3.进行实际操作 尝试爬取网站

通过教程学习可知爬取页面涉及的几个包有

1.requests库是一个http请求库用于对目标网页进行爬取

2.beautifulsoup库主要的功能是从网页抓取数据

3.pprint库主要功能是美化打印结果

4.由于最终结果要存储成为csv文件 导入了csv相关库

import requests
from bs4 import BeautifulSoup
import pprint
import csv
import pandas as pd

 导库结束后进行网页下载

定义一个函数用于下载html

def download_all_htmls():
    htmls=[]
    for i in range(1):
        url = f"http://data.eastmoney.com/zjlx/00000{i+1}.html/"
        print("craw html:",url)
        r = requests.get(url)
        if r.status_code !=200:
             raise Exception("error")
        htmls.append(r.text)
    return htmls

 调用函数 查看下载的html链接

htmls=download_all_htmls()

返回第一页的页面具体内容

htmls[0]

对单个页面进行数据分析

定义一个函数对页面中希望爬取的内容进行处理

def parse_single_html(html):
    soup=BeautifulSoup(html,'html.parser')
    bodys=soup.find_all("body")
    datas=[]
    for body in bodys:
        title_nodes=(
              body
              .find("div",class_="sinstock-filter-wrap")
            
        )
        title=title_nodes.get_text()
        title1=title.replace("n", " ");
        link_nodes=(
            body
            .find("div",class_="sinstock-filter-wrap")
            .find_all("a")
        )
        a1=[]
        for i in range(20):
            if(i<20):
                link=link_nodes[i]["href"]
                i=i+1
                a1.append(link)
        print("links:",a1)
        datas.append(
            {"title":title1,"link":link})
    return datas

将爬取到的内容用pprint打印

pprint.pprint(parse_single_html(htmls[0]))

定义all_datas列表储存爬取到的内容

all_datas=[]
for html in htmls:
    all_datas.extend(parse_single_html(html))

调用all_datas后可以得到整个页面爬取的结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339962.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号