この記事では、主のpython3の関連情報は、プルフックネット仕事を得る導入し、紙のサンプルコードはのpython3を習得したり、使用するために、私たちのすべてに非常に詳細に記載されて一緒に学ぶために、以下の必要性の友人を学ぶのある基準値を持っていますそれを学ぶ
はじめに
業界についてのpython情報とデータ解析を理解するためには、おそらく業界の給与の要件や条件を見て、私はインターネットから情報を取得することを決めたと分析しました。私は彼らから情報を得るために、心の奥底を危険にさらし、フックを引っ張ることを選んだので、あなたが分析するデータを持っている必要があるため。その後、後述する、非常に強力、プルフック抗クライミングの技術を言わなければなりません。彼はちょうど開始し、あまり話をしませんでした。
明確な目的
各爬虫類は、ちょうど水をテストするために何か新しいものを見つけることを除き、明確な目的を持っている必要があります。私は、Pythonのデータ分析要件と給与の条件であるため、給与、教育、仕事の経験と資格が私の目的であるかを知りたいです。
明確な目的以来、私たちは、ブラウザを開き、ターゲットを見つけて、どのような自分の位置を見ています。自分の情報をフックプルのようなこのウェブサイトは、一般的に、AJAXを介してロードされ、ちょうどページ番号をクリックすることで、最大表示を開始するよりも、戻りページのジョブを押した後に行くために「のpythonデータ分析」を入力していますジョブの変更とは、さらにネットワークが、私たちは安全そうちょうどポストXHRリクエストやドキュメントに焦点を当ててみましょう、とすぐに我々が望むものを見つけ、彼はポストによって要求されたことを推測することができ、あまり変化しませんでした。
目に見える形でJSONを保存した詳細な情報をプレビューするにはクリックして、どこの給与'、「workYear」、 「教育」、「positionID」( ページ番号についてのジョブの詳細は)私たちが望むものです。そして、KD =キーワード、PN = PAGENUMそのフォームデータ、で(ページ)を見てこれが私たちのリクエストパラメータを持って来るまでの時間です。また、当社は、リクエストヘッダのパラメータ、少し後で使用リファラ注意を払う必要があります。あなたがターゲットを知ったら、立ち上がって!
第二に、爬虫類を開始
まず、通常のテープを使用するリクエストヘッダヘッダ、ユーザーエージェントを設定し、その後FORMDATAもライブラリに直接リクエストを持参requests.post(url, headers=headers, data=formdata) ,
し、与えられ始めた:{"status":false,"msg":"您操作太频繁,请稍后再访问","clientIp":"......","state":2402}。
この問題を解決する鍵は、抗登るプルフックのメカニズムを理解することである。入りますpythonのデータ解析ページを雇う前に、私たちは家でしたい、あなたはそれがキーワードのジャンプを入力START_URL呼び出したいことがあります。この要求に近づいている場合、このプロセスでは、サーバーはクッキー、クッキーを反映されます、そして、我々はあなたが欲しいものを得ることができ、最初の要求は、要求のターゲットURLにクッキーを取得START_URLので、宛先要求のアドレスだけでなく、リファラを持っている場合リクエストヘッダのパラメータ、このような何かのリファラ意味:私は各地からのページへのリンクサーバーを伝えるには、このサーバグループは、処理するためにいくつかの情報を得ることができます。また、長い睡眠時間が少し設定されるべきである、または非常に簡単にシールします。抗登山後のメカニズムを知って、いくつかの単語の男が直接コードに、と述べました。
'''
@author: Max_Lyu
Create time: 2019/4/1
url: https://github.com/MaxLyu/Lagou_Analyze
'''
# 请求起始 url 返回 cookies
def get_start_url(self):
session = requests.session()
session.get(self.start_url, headers=self.headers, timeout=3)
cookies = session.cookies
return cookies
# 将返回的 cookies 一起 post 给 target_url 并获取数据
def post_target_url(self):
cookies = self.get_start_url()
pn = 1
for pg in range(30):
formdata = {
'first': 'false',
'pn': pn,
'kd': 'python数据分析'
}
pn += 1
response = requests.post(self.target_url, data=formdata, cookies=cookies, headers=self.headers, timeout=3)
self.parse(response)
time.sleep(60) # 拉勾的反扒技术比较强,短睡眠时间会被封
# 解析 response,获取 items
def parse(self, response):
print(response)
items = []
print(response.text)
data = json.loads(response.text)['content']['positionResult']['result']
if len(data):
for i in range(len(data)):
positionId = data[i]['positionId']
education = data[i]['education']
workYear = data[i]['workYear']
salary = data[i]['salary']
list = [positionId, education, workYear, salary]
items.append(list)
self.save_data(items)
time.sleep(1.3)
ファイルを保存することであるsave_data(項目)、私はcsvファイルに保存されていました。スペースが限られている、そこに立証されていません。
第三に、募集の詳細へのアクセス
これは、ページの要件が必要な詳細を持っている、positionIDは詳細ページを取得すると言います。(いくつか提供しているスキルはトレードオフので、良くなっている)。これは、比較的容易得ることであるが、テキストは非常に簡単に対処していない、私は唯一の資格を介して取得することができます言葉「が必要」。
'''
@author: Max_Lyu
Create time: 2019/4/1
url: https://github.com/MaxLyu/Lagou_Analyze
'''
def get_url():
urls = []
with open("analyst.csv", 'r', newline='') as file:
# 读取文件
reader = csv.reader(file)
for row in reader:
# 根据 positionID 补全 url
if row[0] != "ID":
url = "https://www.lagou.com/jobs/{}.html".format(row[0])
urls.append(url)
file.close()
return urls
# 获取详细信息
def get_info():
urls = get_url()
length = len(urls)
for url in urls:
print(url)
description = ''
print(length)
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
content = etree.HTML(response.text)
detail = content.xpath('//*[@id="job_detail"]/dd[2]/div/p/text()')
print(detail)
for i in range(1, len(detail)):
if '要求' in detail[i-1]:
for j in range(i, len(detail)):
detail[j] = detail[j].replace('\xa0', '')
detail[j] = re.sub('[、;;.0-9。]', '', detail[j])
description = description + detail[j] + '/'
print(description)
write_file(description)
length -= 1
time.sleep(3)
第四に、ショーの結果
、ここでは、タスクが終わったクロール。データを取得した後、分析し、次の時間を要約する少しです。
913066266、高齢者が学んでいる方法を見て:私たちは、Pythonのバックルqunを学ぶお勧めします!基本的なWeb開発Pythonスクリプトからなど、爬虫類、ジャンゴ、データマイニング、へ[PDF、実際のソースコード]、ゼロベースのプロジェクトの戦闘データに仕上げています。どんな小さなPythonのパートナーに与えられました!毎日、ダニエルは上をクリックし、私たちが参加し、学習し、細部に注意を払う必要性にする方法のいくつかを共有するために、タイミングPythonの技術を説明するのpython学習者収集
概要を
この記事のためにすべてをだと、私はこの論文の内容は、学ぶために誰か仕事のための学習のいくつかの基準値を願っていました