Webページを参照してみましょう🤔
Web scrippingは、、、、不思議で、面白くて、煩雑で、
Request、BeutifulSoup、Seleniumは知っています.
私のPCとWebサーバ間の通信.リクエスト(request)またはresponse(response)データの付与時にコミュニケーションする言語.
私たちはスクロールするとき、この言語でWebサーバにデータを提供するように要求します.
サーバにデータを要求するときGET、データを送信するときPOST
Webサーバにデータを要求すると、WebサーバはHTMLのソースコードを書いてくれます.ブラウザはこのコードを説明し、よく見るページ形式に分けます.
したがって、ポーリングを行う場合は、Webサーバにリクエストを送信し、htmlからなるソースコードを受信し、必要な部分を抽出する必要があります.
ちなみにtextとcontentの違いは、textがUnicodeを読み出し、contentがバイトを読み出すことです.
テキストのみ->text
イメージがあっていろいろ読みたい
htmlコードをより理解しやすくします.(これはスープです)
スープから欲しい部分を抽出できます.select、select oneを使用します.
selectはlistを返します.条件を満たすすべてのオブジェクトのリストを返します.
select oneは、条件を満たす最初のオブジェクトのみを返します.
自動化ツールです.Web上での動作を自動化できます.
ボタンを押したり、パスワードを入力したりする行為.
入力データ
Request、BeutifulSoup、Seleniumは知っています.
基本前提知識
HTTP
HTTPは、HTMLドキュメントなどのリソースのインポートを許可するプロトコルです。HTTPはWeb上のすべてのデータ交換の基礎であり、クライアント-サーバプロトコルでもある。
私のPCとWebサーバ間の通信.リクエスト(request)またはresponse(response)データの付与時にコミュニケーションする言語.
私たちはスクロールするとき、この言語でWebサーバにデータを提供するように要求します.
サーバにデータを要求するときGET、データを送信するときPOST
HTML
ハイパーテキストタグ言語(HTML)はプログラミング言語ではなく、ブラウザに私たちが見ているページがどのように構造化されているかを知らせるタグ言語です。
Webサーバにデータを要求すると、WebサーバはHTMLのソースコードを書いてくれます.ブラウザはこのコードを説明し、よく見るページ形式に分けます.
したがって、ポーリングを行う場合は、Webサーバにリクエストを送信し、htmlからなるソースコードを受信し、必要な部分を抽出する必要があります.
Request
モジュールのクリーンアップ
GET
import requests
url = 'https://naver.com'
response = requests.get(url)
response.text
最も基本的な方法.url = 'https://search.naver.com/search.naver'
params = {
'where':'image',
'sm':'tab_jum',
'query':'youtube'
}
response = requests.get(url, params=params)
htmml = response.content
パラメータをディックシャナリーに渡すことができます.ちなみにtextとcontentの違いは、textがUnicodeを読み出し、contentがバイトを読み出すことです.
テキストのみ->text
イメージがあっていろいろ読みたい
BeautifulSoup
htmlコードをより理解しやすくします.(これはスープです)
スープから欲しい部分を抽出できます.select、select oneを使用します.
import requests
from bs4 import BeautifulSoup as bs
soup = BeautifulSoup(html)
soup.select('.photo_group._listGrid')
url = 'https://search.naver.com/search.naver'
params = {
'where' : 'news',
'sm' : 'tab_jum',
'query' : '아이폰'
}
response = requests.get(url, params = params)
response.url
soup = BeautifulSoup(response.content)
elements = soup.select('.news_area')
news_list = []
for element in elements:
news = element.select_one('.news_tit')
print(news)
news_data ={
'title' : news['title'],
'link' : news['href']
}
news_list.append(news_data)
import pandas as pd
pd.DataFrame(news_list)
これは、ネイバーの記事10編を読み、各記事のtitle、linkディックシリーズを生成した後、それをデータフレームに作成するプロセスです.selectはlistを返します.条件を満たすすべてのオブジェクトのリストを返します.
select oneは、条件を満たす最初のオブジェクトのみを返します.
Selenium
自動化ツールです.Web上での動作を自動化できます.
ボタンを押したり、パスワードを入力したりする行為.
from selenium import webdriver
driver = webdriver.Chrome('./chromedriver')
driver.get('https://www.naver.com')
driver.find_element_by_xpath('//*[@id="account"]/a').click()
driver.find_element_by_xpath('//*[@id="id"]').send_keys('123')
driver.find_element_by_xpath('//*[@id="pw"]').send_keys('123')
driver.find_element_by_xpath('//*[@id="log.login"]').click()
driver.close()
これはNAVERログインのプロセスです.入力データ
send_keys
、click
をクリックし、time.sleep(1)
1秒待ちCelenniumとBeautiful Circhの同時書き込み
url = 'https://color.adobe.com/ko/search?q=warm'
response = requests.get(url)
soup = BeautifulSoup(response.content)
soup
driver = webdriver.Chrome('./chromedriver')
driver.get('https://color.adobe.com/ko/search?q=warm')
driver.find_element_by_xpath('//*[@id="react-spectrum-8"]/div/div[3]').click()
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
a = soup.select('div.Theme__theme___2NcED')
a[3]
ポップアップウィンドウxボタンをセルとしてクリックし、htmlソースコードをbsに分割します.Reference
この問題について(Webページを参照してみましょう🤔), 我々は、より多くの情報をここで見つけました https://velog.io/@ann9902/Webcrawling을-해보자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol