1.常用的python第三方库:
requests 主要两种方法 get和post
get,就是本地向服务器索取的意思,服务器检查请求头(request headers)后,如果觉得没问题,就会返回信息给本地。
post,就是本地要向服务器提交一些数据的意思,服务器还是会检查请求头,如果提交的数据和请求头都没问题,就会返回信息给本地。
requests对象使用
从这个对象中获取所有我们想要的信息非常简单,毕竟爬虫要的数据主要就三种,html源码,图片二进制数据,json数据,Response对象一次性满足你三个愿望。
2.pymongo基本使用方法:
连接mongodb我们需要使用pymongo库里面的mongoclient,一般来说传入mongodb的IP及端口即可,第一个参数为地址host,第二个参数为端口port,端口如果不传默认
这样就可以创建mongodb链接
另外mongoclient的第一个参数host还可以直接传mongodb的连接字符串,以mongodb开头
3.bs4
bs4 是编写 python 爬虫常用库之一,主要用来解析 html 标签。
事实上,bs4库 是解析、遍历、维护、“标签树“的功能库。
通俗一点说就是: bs4库把html源代码重新进行了格式化,
从而方便我们对其中的节点、标签、属性等进行操作。
4.urllib
urllib是python提供的一个用于操作URL的模块,
Urllib是python内置的HTTP请求库
包括以下模块
urllib.request 请求模块
urllib.error 异常处理模块
urllib.parse url解析模块
urllib.robotparser robots.txt解析模块
**mongodb源码安装***
1.下载地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.5.tgz
2.上传位置:/usr/local/src
软件安装位置:/usr/local/mongodb
数据存放位置:/usr/local/mongodb/data
日志存放位置:/usr/local/mongodb/logs
解压: tar -zxv -f mongodb-linux-x86_64-rhel70-3.2.5.tgz
改变数据存放数据: mv mongodb-linux-x86_64-rhel70-3.2.5 /usr/local/mongodb
创建数据库目录和日志目录:mkdir -p /usr/local/mongodb/data
mkdir -p /usr/local/mongodb/logs
启动mongodb
cd /usr/local/mongodb
./bin/mongod --dbpath=/usr/local/mongodb/data --logpath /usr/local/mongodb/logs/log.txt --logappend --fork
5.爬虫分析
直接上脚本???
encoding=utf-8
%这是脚本中存在脚本使用的,没有中文用#注释就行了
from future import print_function
%为了区分python版本,版本不同是有区别的
import requests
%调用requssts库
from bs4 import BeautifulSoup
%调用bs4中BeautifulSoup库来解析html
import pymongo
%调用pymongo
import json
%调用json库
db = pymongo.MongoClient().iaaf
%定义数据库名字
def spider_iaaf():
%定义一个def函数名
for i in range(4):
res = requests.get(url.format(i),headers=headers)
%根据for循环,定义四个url,get请求这四个url,headers防止反扒策略
html = res.text
%请求页面的html代码原
db.athletes.×××ert_one(j_data)
%把字典j_data保存到数据库
if name == 'main':
%固定写法,被调用不会重复执行
2.。。。。。。。。。。。
from future import print_function
从future模块导入,兼容
import requests
dia调用第三方库request
def long_jump(url):
定义一个函数明为long_jump的函数
res = requests.get(url, headers=headers)
get请求url
html = res.text
get请求页面源码
soup = bs(html,'html.parser')
解析请求页面
div = soup.find('div', id='progression')
在页面找到所有div标签,id为progression,拿到跳远数据
h2_l = []
定义h2_l为一个列表
if div != None:
div不为空
h2_l = div.find_all('h2')
找出div中所有h2_l
tr_l = tbody_out.find_all('tr')
在所有室外找到tr标签,定义为tr_l
td_l = i.find_all('td')
找到td标签,拿到数据
td_dict = {}
定义为一个字典
outdoor.append(td_dict)
把字典插入到outdoor列表中
td_l = i.find_all('td')
找到所有室内tr标签
td_dict = {}
定义为一个字典
最后把脚本二定义到脚本三里面运行脚本,最后拿到想要的数据。
转载于:https://blog.51cto.com/14239200/2409350