简单python爬虫数据爬取的四部曲

对于生活中和日常中,我们可能会收集一下不是很大的网站资源,对于非爬虫工程师而言,我觉得应付日常的python爬虫,掌握一下四个小技巧就可以让生活或者学习事半功倍

1.request请求网页资源得到源码

通过requests库我们带一些简单的参数,可以让我们机械化重复性的获得大量网页带数据的源代码内容
关于requests的更多的用法

import requests
paras={
    'name':"xxx",
    'password':"xxx"
}
headers = {
    'Cookie':""
         }
r=requests.get("http://www.lapuda.org/diary/133648/",headers=headers,params=paras)
r.encoding="utf-8"
inform=r.text
print(inform)

2.通过正则表达式获得我们想要的数据

这里我最常见的就是获得在A和B之间的数据通过正则表达式过滤一下,就可以从网页的源代码中获得我们想要的数据了
更多关于正则表达式的内容

# -*- coding:utf-8 -*-
import re
r="<pre>我其实不想面对现实。女友经常劝我要学会活在当下。我昨晚做题的时候,看到西藏的坛城,一句话对我很有启示。西藏的一些高僧往往以经年累月的光阴用五彩细砂砌成巧夺天工的曼荼罗图案,整个过程中,作业者口诵经文、心存敬意、屏息凝视、一丝不苟。几经辛苦,到了功行完满的一刻,却会毫不留恋地一手抹掉。这一种态度,对惯于享用先进科技和讲求功效的现代人来说,骤看简直不可思议,但细心省察下,却寓意深远:应认真庄严地投入生活又不为生活中的得失所累。这点真的很难。我觉得我不是这样,我是不想认真投入生活,总是期望未来,又为生活的得失所计较。我现在希望我能好好享受生活的同时,好好考试。</pre>"
text=re.findall(r'(?<=pre>)([\s\S]*?)(?=<)',r)#提取在 pre>和<之间的内容
#简单的演示就是 r'(?<=A)([\s\S]*?)(?=B)'提取在A和B之间的内容
print(text)

3.通过pymysql存储我们获得的数据

对于大量的数据,我们可以通过pandas库存储在csv文件里面,同样的我们也可以通过pymysql来存储,这样可以存储csv文件不可达到的数量并且使用起来也很方面,最常见的sql操作就是存储和查找

 insert_sql = "INSERT INTO 'test' (`name`, `rank`) VALUES (%s, %s)"
 select_sql=  "SELECT 'name' 'rank' FROM 'test' where author=%s"
import pymysql
name=["小天才","小火龙"]
rank=["1","2"]
connection = pymysql.connect(
                            host='localhost',
                            port=3306,
                            user='root',  # 数据库用户名
                            password='root',  # 数据库登录密码
                            database='cat',  # 要连接的数据库
                            charset='utf8'
)
cursor = connection.cursor()
connection.commit()
for i in range(len(name)):
    value=(name[i],rank[i])
    insert_sql = "INSERT INTO `test` (`name`, `rank`) VALUES (%s, %s)"
    cursor.execute(insert_sql, value)
    connection.commit()

4.通过selenium自动化的登录,获得一些关键值

通过selenium的登录操作后,对于一些网站用requests的话就不需要带上很多的值,因为服务器已经绑定了你登录的信息,这样的话比较方便
更多关于selenium的自动化操作知识

from selenium import webdriver
#找到对应的Firefox的驱动
wd = webdriver.Firefox()
#选择到目标的网址
wd.get('http://ca.muc.edu.cn/zfca/login?service=http%3A%2F%2Fmy.muc.edu.cn%2Fuser%2FsimpleSSOLogin')
#找打网址某一个特定的元素,这里找的是输入框
element = wd.find_element_by_id('username')
#对关键词进行搜索
element.send_keys('xxxxxx\n')
element = wd.find_element_by_id('password')
element.send_keys('xxxxxx\n')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值