python心得

一、学习心得

python是一种很有潜力的高级语言,经过几年的发展,它已经成为了程序设计中的一个重要组成部分。这一学期,我也从 python课程中学到了一些关于 python的知识。在处理字符串时, python也比 c语言更方便。python不仅如此,它还有很多的库,正是由于 python有很多的库,所以让编程变得不再困难。不过,我觉得 python在很多方面都比 c语言更方便,但是它也有它的缺点,例如 for循环方面。虽然我在 python上的造诣还不是很深,但 python的强大还是让我很感兴趣,我想要继续研究下去,可以将 python学的更好。
本学期的课程独特之处在于它不像我们以前所学的别的课那样,需要用课本来背诵大量的知识。这门课的老师会带我们上机实操,能够更好的了解到实际的工作环境。在实际操作中,我遇到了各种各样的问题。比如初始环境安装,连接 MongoDB数据库,连接Mysql数据库等等,但是安装完成后,无法连接或者代码报错的问题层出不穷。但是解决了这些问题也只是跨入了爬虫学习的门槛。这令我意识到,爬虫的学习并不像表面上看起来的那样简单,在实验一和实验二中,我也遇到了许多问题。比如pycharm的配置、电脑系统不支持,为此我还重装了系统。后来跟着老师录的学习录像和老师在群里发的提示,慢慢做完实验和作业。令我意识到学习这些新颖的技术知识需要我们充分利用周围的资源。总的来说我认为想要学好一门编程语言,光学习基础知识和应对方法是不够的,必须要自己上手实操,从实际操作中发现并解决问题,以此来提高熟练度和达到自我的不断提升。

二、爬虫应用到的pip模块以及对应的功能

pip模块 简介
pandas pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
numpy NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算
requests Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 。
BeautifulSoup BeautifulSoup是一个高效的网页解析库,可以从 HTML 或 XML 文件中提取数据。支持不同的解析器,比如,对HTML解析,对XML解析,对HTML5解析。一般情况下,我们用的比较多的是 lxml 解析器。
urllib 在python2中,曾经有urllib和urllib2两个库来实现请求的发送,但目前通用的python3版本中,两个库的功能已经合并成一个库,统一为urllib,它是python内置函数,不需要额外安装即可使用。
pymysql pymysql是一个连接mysql数据库的第三方模块,可作为连接mysql数据库的客户端,对数据库进行增删改查操作。
pymongo pymongo是Python中用来操作MongoDB的一个库。 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写,可以存储比较复杂的数据类型。
json 模块json能够将简单的python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。
scrapy Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
gerapy 是一个分布式爬虫管理框架。能帮助我们更方便地控制爬虫运行,更直观地查看爬虫状态,更实时地查看爬取结果,更简单地实现项目部署,更统一地实现主机管理

三、实验总结

1. 实验1:单个网页的爬取

流程描述:
1.确定抓取网站
2.访问抓取网站
3.页面解析
4.抓取数据
5.数据存储(存入mysql和mongodb)

import pandas as pd
import numpy as np
from pandas import DataFrame
import requests
from bs4 import BeautifulSoup
import pandas as pd
from urllib import parse
import pymysql
from sqlalchemy import create_engine
import sqlalchemy
import json
import pymongo
#调用数据包
url = "http://health.people.com.cn/GB/408568/index.html"
html = requests.get(url)
html.encoding = "GB2312"
#对爬取网站进行解码
soup = BeautifulSoup(html.text,'lxml')
list
data = []
for i in soup.find_all("div",class_="newsItems"):
    title = i.a.text
    date = i.div.text
    url = parse.urljoin(url,i.a["href"])
    print(title,date,url)
    data.append((title,date,url))
#调用BeautifulSoup对该网页进行爬取
df = pd.DataFrame(data,columns=["title","date","url"])
df
#将爬取数据转换成df数据并定义标题
sql = 'insert into qiushi(title,date,url) values(%s,%s,%s) charset=utf8'
engine = create_engine('mysql+pymysql://root:123456@localhost/test1?charset=utf8')
df.to_sql( 'newlist1', con=engine, if_exists='append')  #数据写入数据库
#运用sql、engine将数据写入数据库
client = pymongo.MongoClient('127.0.0.1',27017) #连接mongodb
database = client["NewsData"] #建立数据库
table = database["News"] 
data_ = json.loads(df.T.to_json())
data_
#连接mongodb建立数据库建立集合并将爬取数据存入该集合

存储结果:

在这里插入图片描述
在这里插入图片描述

2. 实验2:多个网站的爬取

2.1下载scrapy

按住win+r打开输入cmd,在打开页面输入以下代码下载2.6.1版本

pip install scrapy==2.6.1

2.2新建爬虫项目

在桌面新建一个文件夹,进入新创建的scrapy框架文件夹,cmd打开命令窗口,输入scrapy startproject NewsData ,scrapy框架文件夹中会自动生成News

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值