04-26

5607 ワード

Pythonリクエストパッケージ
API
リクエスト・ライブラリは、非常に直感的なAPIを提供します.HTTPリクエストの方式(メソッド)に応じて、対応する名前の関数を使用することができます.
  • GET方式:リクエスト.get()
  • POST方式:要求.post()
  • PUT方式:要求.put()
  • DELETE方式:要求.delete()
  • import requests # requests 라이브러리 설치 필요
    
    r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
    rjson = r.json()
    
    print(rjson['RealtimeCityAir']['row'][0]['NO2'])
    ここで勉強しているときはどうしてですか.GET認知jsonを背負うためとかじゃなくてリクエスト者が書かせてくれたこのように理解すべきだ.
    スクロールの中で最も重要な2つのこと
    一番目.ブラウザリクエストを開かない
    2度麺.私が欲しい情報をフィルタリングします.
    「誘惑」キャラクターはBeautifulSoupのキャラクターです
    整理後、Pythonはリクエストをリクエストとしてリクエストし、BeautifulSoupにフィルタします.
    import requests
    from bs4 import BeautifulSoup # bs4에서 BeautifulSoup만 import한거임 그래서 bs4다른거사용못함
    
    headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
    data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303',headers=headers)
    
    soup = BeautifulSoup(data.text, 'html.parser')
    
    print(soup)
    いつも一番大切なのは、初めて何をしたりテストしたりするときにプリンタやコンソールで撮ることです.
    なぜタイトルを貼るのか、多くのサイトがコードで要求すると基本的な要求をブロックします.
    これはブラウザでエンターテインメント効果を達成するためです.headers=headers
    そしてurlに入り、BeatifulSoupでフィルタリングして撮影します.
    以前のchromeで、必要なチェックボックスをクリックし、copyでcopyselectorをクリックします.
    bs 4の使用方法は大きく2種類ある.
    1. select_one
    2. select
    この二つ
    select oneはもちろん
    selectは複数です
    Tip:HTML Parserは、HTML構文規則に基づいてWebページの内容を解析し、その意味と構造を解析するプログラムです.
    selectの役割は乗ってどこにいるか教えてあげることです!!
    title = soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a')
    
    print(title)
    <a href="/movie/bi/mi/basic.nhn?code=171539" title="그린 북">그린 북</a> 결과화면
    ラベルを持ってきてそこから内容を選ぶならtitletextこれでいい
    属性を取得したい場合はtitle["href"]をdickshernarieとし,そうは考えられない.
    BS 4の人の気持ちなのでわかりません
    複数のスクロールをインポートする場合は、靭帯を選択するときにhtml構造を表示してインポートする必要があります.
    #old_content > table > tbody > tr:nth-child(2)
    #old content>table>tbody>tr:nth-child
    #old content>table>tbody>trとなると、それなりの友達が出てきます.
    trs = soup.select('#old content>table>tbody>tr')#selectは結果をlistに返します.
    #old_content > table > tbody > tr:nth-child(2) > td.title > div > a
    trs = soup.select('#old_content > table > tbody > tr') # select는 결과를 list로반환한다.
    
    for tr in trs:
        a_tag = tr.select_one('td.title > div > a')
        print(a_tag)
    selectは今ラベルでどこを探していると思います.
    教えてくれるキャラクターを決める関数のようです
    データベースは1台のサーバと見なすことができます.データベースサーバに接続する(robo 3 tで)
    したがって、データベースを使用して、必要に応じてデータベース(サーバ)からデータを保存し、必要に応じてデータをインポートまたは実行します.
    単なる保管というよりは、データベースをよりよく使うためです.
    NoSQLは1行1行ディックという形で入っていて、入っても入らなくても、こうなっています.
    SQLでは、列/行を事前定義する必要があります.決まっているので選びやすいし、一貫しています.
    NoSQLはデータごとに異なります
    質問:DBサーバと呼ばれるデータベースを1つのサーバとして利用できますか?
    パソコンでlocalhostポート番号を使っているというのですが、なんというか、そこはサーバーのようです...
    Pythonでmongodyを操作するにはpymongoというライブラリが必要です.
    他人が作ったライブラリを使ってX線を操作するようにpymongoもこのようなライブラリです
    DB연결 - MongoClient
    MongoDB에 연결하는 방법은 두 가지가 있다. 
    첫 번째 방법은 실행 중인 MongoDB 서버의 URI를 MongoClient의 파라미터로 입력하는 것이고, 
    두 번째 방법은 DB 서버의 IP와 포트 번호 두 가지 값을 각각 파라미터로 입력하는 것이다. 
    나는 로컬 환경에서 MongoDB를 실행 중이어서 고정IP 대신 localhost를 입력하였다.
    
    from pymongo import MongoClient
    
    # 방법1 - URI
    # mongodb_URI = "mongodb://localhost:27017/"
    # client = MongoClient(mongodb_URI)
    
    # 방법2 - IP, PORT
    client = MongoClient('localhost', 27017)
    
    print(client.list_database_names())
    ['admin', 'config', 'local']
  • NoSQL用
  • Collection
    CollectionはMongoDB Documentのグループです.
    DocumentはCollectionの内部にあります.
    RDMSのテーブルと似ていますが、RDMSとは異なりモードはありません.Documentセクションで説明したように、各Documentにはダイナミックモードがあります.
    つまり、テーブルはdocumentではなくNoSQLなのでschemaはありません.ドキュメントにダイナミックアーキテクチャがあるためです.
    結論:収集を表として理解すればよい.そして記録を文書として理解する.
    from pymongo import MongoClient
    client = MongoClient('localhost', 27017) # mongodb접속
    db = client.dbsparta # dbsparta라는 db이름으로 접속할건대 없으면 자동으로만들어준다 데이터베이스이름
    
    # insert / find / update / delete 4가지만 알면된다.
    doc = {'name':'john','age':27} # 몽고디비는 딕셔너리 쌓이는거 그래서 딕셔너리
    db.users.insert_one(doc) # users라는테이블(nosql에서는 콜렉션) 
    # recorde는 document
    
    sage ages=list(db.users.find({'age':21},{'id':False})#id値は表示しないことを示す
    リストに変換しない<pymongo.cursor.Cursor object at 0x019AE340>リストに変換する場合[{'name': 'bobby', 'age': 21}, {'name': 'jane', 'age': 21}]List(db.users.find({},{'id':False})#無条件インポート
    user = db.users.find one({“name”:“bobby”})
    一番上の子だけ連れて行きます.
    食事の時間以外にコードも勉強しました.