博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python用法总结
阅读量:6231 次
发布时间:2019-06-21

本文共 3043 字,大约阅读时间需要 10 分钟。

requests库的用法:

requests是python实现的简单易用的HTTP库

因为是第三方库,所以使用前需要cmd安装

pip ×××tall requests

安装完成后import一下,正常则说明可以开始使用了

基本用法:

import requests

form bs4 import BeautifulSoup
response = requests.get('')
print(response.status_code) # 打印状态码
print(response.url) # 打印请求url
print(response.headers) # 打印头信息
print(response.cookies) # 打印cookie信息
print(response.text) #以文本形式打印网页源码
print(response.content) #以字节流形式打印

#!/usr/bin/env python

encoding=utf-8

from future import print_function

import requests
from bs4 import BeautifulSoup
import pymongo
import json

db = pymongo.MongoClient().iaaf

def spider_iaaf():

url 100 换成longjump的

# url = 'https://www.iaaf.org/records/toplists/sprints/100-metres/outdoor/men/senior/2018?page={}'url = 'https://www.iaaf.org/records/toplists/jumps/long-jump/outdoor/men/senior/2018?regionType=world&windReading=regular&page={}&bestResultsOnly=true'headers = {    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Safari/605.1.15', }for i in range(1,23):    res = requests.get(url.format(i), headers=headers)    html = res.text    print(i)    soup = BeautifulSoup(html, 'html.parser')    #tbody_l = soup.find_all('tbody')    record_table = soup.find_all('table', class_='records-table')    list_re = record_table[2]    tr_l = list_re.find_all('tr')    for i in tr_l:    # 针对每一个tr  也就是一行        td_l = i.find_all('td')    # td的列表 第三项是 带href        # 只要把td_l里面的每一项赋值就好了  组成json数据  {}  插入到mongo        # 再从mongo里面取href  访问  得到 生涯数据  再存回这个表        # 再 把所有数据 存到 excel        j_data = {}        try:            j_data['Rank'] = td_l[0].get_text().strip()            j_data['Mark'] = td_l[1].get_text().strip()            j_data['WIND'] = td_l[2].get_text().strip()            j_data['Competitior'] = td_l[3].get_text().strip()            j_data['DOB'] = td_l[4].get_text().strip()            j_data['Nat'] = td_l[5].get_text().strip()            j_data['Pos'] = td_l[6].get_text().strip()            j_data['Venue'] = td_l[8].get_text().strip()            j_data['Date'] = td_l[9].get_text().strip()            j_data['href'] = td_l[3].find('a')['href']        except:            pass        db.athletes.×××ert_one(j_data)

if name == 'main':

spider_iaaf()

bs4的用法:

BeautifulSoup,就是一个第三方的库,使用之前需要安装

pip ×××tall bs4

配置方法:

(1)cd ~
(2)mkdir .pip
(3)vi ~/.pip/pip.conf
(4)编辑内容和windows的内容一模一样

bs4是什麽?

它的作用是能够快速方便简单的提取网页中指定的内容,给我一个网页字符串,然后使用它的接口将网页字符串生成一个对象,然后通过这个对象的方法来提取数据

bs4语法学习

通过本地文件进行学习,通过网络进行写代码

(1)根据标签名进行获取节点
只能找到第一个符合要求的节点
(2)获取文本内容和属性
属性

soup.a.attrs 返回一字典,里面是所有属性和值

soup.a['href'] 获取href属性

文本

soup.a.string

soup.a.text
soup.a.get_text()
【注】当标签里面还有标签的时候,string获取的为None,其他两个获取纯文本内容

(3)find方法

soup.find('a')

soup.find('a', class_='xxx')
soup.find('a', title='xxx')
soup.find('a', id='xxx')
soup.find('a', id=re.compile(r'xxx'))
【注】find只能找到符合要求的第一个标签,他返回的是一个对象

(4)find_all

返回一个列表,列表里面是所有的符合要求的对象

soup.find_all('a')
soup.findall('a', class='wang')
soup.find_all('a', id=re.compile(r'xxx'))
soup.find_all('a', limit=2) 提取出前两个符合要求的a

转载于:https://blog.51cto.com/14259167/2409354

你可能感兴趣的文章
自适应响应式,手机,平板,PC,java企业网站源码
查看>>
【CodeForces】835F Roads in the Kingdom
查看>>
2014.4.17—openflow代码流程
查看>>
leetcode-414-Third Maximum Number
查看>>
最新Android开源库、工具、开源项目整理分享
查看>>
Sql 获取当前日期没有时分秒
查看>>
mybatis_mapper动态代理
查看>>
CoreData一些基本概念
查看>>
1.java soap api操作和发送soap消息
查看>>
AJAX请求 $.ajaxSetup方法的使用
查看>>
background-size搭配transition实现鼠标hover背景图放大问题
查看>>
Redis分布式锁
查看>>
spark/java连接 kudu incompatible RPC? Error is: step 异常解决
查看>>
流程控制、数据类型(列表)
查看>>
vc6.0 获取ip(一)
查看>>
zt:华为手机的梦想:不破苹果终不还
查看>>
jzoj5990. 【北大2019冬令营模拟2019.1.6】Bear (状压dp)
查看>>
在CentOS上安装Python3的三种方法
查看>>
[PKUWC2018]随机算法
查看>>
《大话设计模式》读书笔记-第25章 中介者模式
查看>>