python用法總結

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學習

encoding=utf-8

from future import print_function
import requests
from bs4 import BeautifulSoup
import pymongo
import jsonurl

db = pymongo.MongoClient().iaaf
def spider_iaaf():excel

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

相關文章
相關標籤/搜索