強くなったJava、Pythonの?データは、(ソースコードを含む)を説明します一つ10万候補 - 爬虫類デイ・ネットワーク
前のコースを参照するには何の要求が存在しない場合は、見てみましょうか、今日のコースを読まなければなりません!
:私はポイントのコース要求参照-本物のアイテム2(コードを含む、コミュニティ内のすべての論文をクローリング)のWebクローラを
I.コース紹介
今日はリクエストを使用してプロジェクトをデータベースに安心して将来のプラットフォームの位置情報をクロールモジュールでした
:今日の目的は、
まず、パイソンの将来についてのすべての心配を取得し、Javaの役職
Javaの職場、パイソンの将来についてのすべての心配を取得し、第二
第三に、パイソンの将来についてのすべての心配へのアクセス、Javaのクレジット処理
第四に、買収データベースに格納されたデータ
5、最終結果
(1)6ワット+ Javaの投稿:
(2)+ 3W後のPython
将来の心配リクルートネットワークのウェブサイトを決定するために、1、
インタフェースの第1上昇の最初のアドレスとしてこのアドレス:()
https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=
2、自动翻页
因为网站有很多页信息,我们需要翻页操作(就需要做以下观察):
第一页网址:
https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=
第二页网址:
https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,2.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=
第三页网址:
https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,3.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=
所以我们可以推测出第四页网址:(就是python后面的2,4)的4有变化,其他不用管,python就是关键词的意思,下次爬java直接将python改成java即可
https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,4.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=
所以得出翻页语句为:
clazz = "python"#改变clazz即可
for i in range(0,page-1):
print("------------------当前正在爬取第" + str(i+1) + "页----------------------")
url = "https://search.51job.com/list/000000,000000,0000,00,9,99," + clazz + ",2," + str(i+1) + ".html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99" \
"°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0" \
"&address=&line=&specialarea=00&from=&welfare="
2、页面分析,正则表达式的编写
首先我先给大家截取一部分网站源代码:
注意:这里我们用的匹配方式是正则表达式,所以我们的爬虫文件应该这样写。当然大家使用XPath表达式也可以,表达式基础不好的同学可以看我之前发的两篇博客:
<!--列表表格 start-->
<div class="el title">
<span class="t1">职位名</span>
<span class="t2">公司名</span>
<span class="t3">工作地点</span>
<span class="t4">薪资</span>
<span class="t5">发布时间</span>
</div>
<div class="el">
<p class="t1 ">
<em class="check" name="delivery_em" onclick="checkboxClick(this)"></em>
<input class="checkbox" type="checkbox" name="delivery_jobid" value="120026026" jt="0" style="display:none" />
<span>
<a target="_blank" title="电气/python工程师" href="https://jobs.51job.com/shanghai/120026026.html?s=01&t=0" onmousedown="">
电气/python工程师 </a>
</span>
</p>
<span class="t2"><a target="_blank" title="ABB(中国)有限公司" href="https://jobs.51job.com/all/co2215274.html">ABB(中国)有限公司</a></span>
<span class="t3">上海</span>
<span class="t4"></span>
<span class="t5">02-17</span>
</div>
<div class="el">
<p class="t1 ">
<em class="check" name="delivery_em" onclick="checkboxClick(this)"></em>
<input class="checkbox" type="checkbox" name="delivery_jobid" value="115980776" jt="0" style="display:none" />
<span>
<a target="_blank" title="Python开发工程师" href="https://jobs.51job.com/shanghai/115980776.html?s=01&t=0" onmousedown="">
Python开发工程师 </a>
</span>
</p>
<span class="t2"><a target="_blank" title="“前程无忧”51job.com(上海)" href="https://jobs.51job.com/all/co1249.html">“前程无忧”51job.com(上海)</a></span>
<span class="t3">上海</span>
<span class="t4"></span>
<span class="t5">02-17</span>
</div>
<div class="el">
<p class="t1 ">
<em class="check" name="delivery_em" onclick="checkboxClick(this)"></em>
<input class="checkbox" type="checkbox" name="delivery_jobid" value="119100602" jt="0" style="display:none" />
<span>
<a target="_blank" title="Python开发工程师" href="https://jobs.51job.com/shanghai-pdxq/119100602.html?s=01&t=0" onmousedown="">
Python开发工程师 </a>
</span>
</p>
<span class="t2"><a target="_blank" title="普华永道信息技术(上海)有限公司" href="https://jobs.51job.com/all/co2485502.html">普华永道信息技术(上海)有限公司...</a></span>
<span class="t3">上海-浦东新区</span>
<span class="t4">17-30万/年</span>
<span class="t5">02-17</span>
</div>
)Pythonの開発エンジニアは、開発エンジニアのPython、PythonのPythonの開発エンジニアは3人の開発エンジニアを持っている電気/ Pythonのエンジニアは、我々は彼らの特性を初めて目:(彼らのユニークな特徴を見つけることができます。私たちは、上記の位置である分析
(でタイトルにユニーク)、見上げ、<ターゲット=「_空白ではない 」( オンライン見つけることが一意ではない)が、また、私たちは患者でなければならない
最後に、私たちはどのような法則を見つけるでしょう。最終的には他の記事で、残りを区別:( 2は、すべての人に来て、非常に単純な)
job_name_s = 'style="display:none" />.*?<span>.*?<a target="_blank" title="(.*?)" href='
これらの2つの作業場所や正規表現(私たちが参照できる)の新たな資本の仕事:記事を読むことができない、次の先頭に入れてください!
job_name_s = 'style="display:none" />.*?<span>.*?<a target="_blank" title="(.*?)" href='
job_name = re.compile(job_name_s, re.S).findall(data)
job_add_s = '<span class="t3">(.*?)</span>'
job_add = re.compile(job_add_s,re.S).findall(data)[1:]
job_money_s = '<span class="t4">(.*?)</span>'
job_money = re.compile(job_money_s,re.S).findall(data)[1:]
図3に示すように、データベースに格納された情報のクロール
直接ソースコード上:サードパーティ製のライブラリをダウンロードする必要があり、ダウンロードする必要はありません
#经过观察,每页有50个数据,也就是说每个正则表达式数组长度为50,每次将一个插入数据库中
for j in range(0,50):
sql = "insert into java_job(job_name,job_add,job_money) values('" + job_name[j] + " ',' " + job_add[j] + " ',' " + job_money[j] + "')"
conn.query(sql)
conn.commit()
第二に、完全なソースコードを入手
コード・ライティング(試験報告書、論文、小さな番組制作)サービス、マイクロ文字を追加してください:ppz2759の
番号の下に懸念公共、ソースコードを取得するには、「クローラ133」を返信