requests库的用法:html
requests是python实现的简单易用的HTTP库python
由于是第三方库,因此使用前须要cmd安装json
pip ×××tall requestswindows
安装完成后import一下,正常则说明能够开始使用了cookie
基本用法:网络
import requests
form bs4 import BeautifulSoup
response = requests.get('http://www.baidu.com')
print(response.status_code) # 打印状态码
print(response.url) # 打印请求url
print(response.headers) # 打印头信息
print(response.cookies) # 打印cookie信息
print(response.text) #以文本形式打印网页源码
print(response.content) #以字节流形式打印ide
#!/usr/bin/env python学习
from future import print_function
import requests
from bs4 import BeautifulSoup
import pymongo
import jsonurl
db = pymongo.MongoClient().iaaf
def spider_iaaf():excel
# 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