Help us understand the problem. What is going on with this article?

Pythonでクローリングをするのに必要な関数

More than 1 year has passed since last update.

クローリングとスクレイピングに必要なものを中心、Pythonの基本的な話のまとめ

.pyファイルでやるなら
'三つ、もしくは"三つで囲むと まとめてコメント扱いになる
#は、その行だけコメント扱いにしてくれる

ちなみにPython3

Print関数

print('Hello World')
print(1)
'''
printの後は()
'''

データの型(単体) 

Pythonのデータ(object)に対して、何かの処理をしたい場合
元々そのオブジェクトに備え付けてあるmethodを使う方法と
関数にそのデータを渡す方法がある
例えばAというデータに対して
A.~~
function(A)
これは前提

文字列 string

print('Hello\nWorld')

tmp = 'Hello World'
tmp.split(' ') #文字列の分解はsplit
tmp.split('o')
tmp + '!!' #結合は + でつなげるだけ
tmp[0] #何番目の文字という取り出し方もできる
tmp.find('ll') #文字列の中に指定した文字があるか確認できる
tmp.find('x') #ない文字を探すと-1が返ってくる

数値  int double たぶん説明いらないので省略

1
1.3

 日付型 datetime

from datetime import datetime as dt #このimportが必要
tstr = '2017-12-29 13:49:37'
tdatetime = dt.strptime(tstr, '%Y-%m-%d %H:%M:%S') # 文字列を変換できる
tdatetime 
str(tdatetime)#逆に、日付を文字列に直したい場合はこれ
tdatetime.day # ちなみにこんなこともできる
tdatetime.month
tdatetime.year
dt.now() #これで現在時刻がだせる
str(1031) + 'くっつける' + str(tdatetime) 

ここまでの3つの型は、全部str()で囲むことで、文字列に変換でき、+でくっつけることができる

ブール

True
False
'''
上の二つだけの型
条件分岐などで使える
'''

データの型(複体)

リスト 配列ともいう

tmp_list = [7, 'aa', False] #中身はなんでもいれられる
tmp_list[0] #0から始まって、指定した番号のものを返してくれる
tmp_list.append(12) #appendでデータの追加ができる
tmp_list
del tmp_list[1] #delで要素の削除も行える
tmp_list

Dataframe これはpandasが必要

import pandas as pd
URLlist = pd.read_csv('URLlist.csv')
URLlist
'''
csvの読み込み方法はほかにもいろいろあるが、これが一番楽だし、読み込んだデータを使いやすいと思う
csv読み込むときは、文字コードの問題とか結構面倒で、引っかかることが多いので注意
基本的にはcsvの文字コードをutf-8、区切りがカンマ(,)で保存すること
'''
URLlist.ix[0,0]#ixで指定すると、特定の要素を抜き出す
URLlist[[0]]#二つのカッコで挟むと、列をリストとして抜き出せる 
URLlist.iloc[0]#ilocで指定すると、特定の行をリストとして抜き出せる

for文

words = ['Japanese', 'English', 'French']
for w in words:
    print (w)
'''
for文そのものは知っていると思うのでPythonでfor文を各書き方だけ説明

for 変数 in オブジェクト:
    実行する処理

変数の後ろに「in」が付くことと、オブジェクトの後ろに「:」が付くことに注意
'''
for num in range(5):
    print(num)
'''
rangeで数字の連番を使える
'''
for num in range(20):
    print num
    if num == 10
        break
'''
break文はそれ以降の処理にかかわず、for文を終了する
'''
for num in range(2, 10):
    if num % 2 == 0:
        print("偶数", num)
        continue
    print("奇数", num)

'''
coninue文は、for文のそのあとの処理だけスキップして、次にいく
意味は実行すればわかる
''' 

関数を定義する

def function(arg1, arg2):
    return  arg1 + ' ' + arg2

tmp = function('本日は','晴天なり')
tmp
'''
関数を定義する場合は、def文を使用する。
関数名には、任意の関数名を記述、
引数は、何らかのオブジェクトを渡す時に使用する。
戻り値は、何らかのオブジェクトを返す時に使用する。
'''
def url_print(arg1):
    return arg1[0] + arg1[1] + arg1[2]+ arg1[3]
tmp = url_print(URLlist.iloc[0])
tmp
'''
引数に、リストを渡すことも可能
'''

Webdriverとかもほんとは書きたいけど、とりあえずここまで。

hieko
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away