爬虫学习之爬虫案例分析

爬虫学习之爬虫案例分析

案例一:

task1: 爬取 新浪财经机构持股汇总 的数据。

机构持股汇总 - 数据中心 - 新浪财经

1、进入网站后根据年和季度可以查询的到数据,并且查看源代码中包含页面数据,那么直接请求即可

2、切换不同的”年“、”季度“和”页码“,观察调试界面的请求,可以发现reportdata为年,quarter为月,p为页码

3、参考代码:

import requests
from bs4 import BeautifulSoup
import csv
from time import sleep

for page in range(1, 2):
    year = "2024"
    k = "1"
    url = f'https://vip.stock.finance.sina.***.***/q/go.php/v***StockHold/kind/jgcg/index.phtml'
    param = {
        "symbol": "%D6%A4%C8%AF%BC%F2%B3%C6%BB%F2%B4%FA%C2%EB",
        "reportdate": year,
        "quarter": k,
        "p": page
    }
    dic = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
    }

    resp = requests.get(url, params=param, headers=dic)


    resp.encoding = 'gbk'
    # print(resp.text)

    content = BeautifulSoup(resp.text, 'html.parser')
    table = content.find('table', attrs={"id":"dataTable"})
    # print(table)

    f = open(f'./task1/task{year}{k}.csv', 'a', encoding='utf-8', newline="")
    writer = csv.writer(f)
    trs = table.find_all('tr')
    for tr in trs:
        tds = tr.find_all('td')
        # print(tds)
        # print(len(tds))
        if len(tds) > 2:
            writer.writerow([tds[0].text, tds[1].text, tds[2].text, tds[3].text, tds[4].text, tds[5].text, tds[6].text, tds[7].text])
    f.close()
    print(f"{year}{k}第{page}页数据写入完成")
    sleep(3)

案例二:

task2: 爬取给定城市(北京、上海、广州、深圳)的空气质量数据。

全国空气质量指数查询 - PM2.5实时地图、空气污染排名 - 空气知音

1、以北京为例,如下图页面代码中包含了天气数据,只需要从返回的页面文件中提取天气数据即可。

转载请说明出处内容投诉
CSS教程网 » 爬虫学习之爬虫案例分析

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买