強くなった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&degreefrom=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&degreefrom=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&degreefrom=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&degreefrom=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&degreefrom=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" \
          "&degreefrom=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」を返信

ここに画像を挿入説明

公開された17元の記事 ウォンの賞賛193 ・は 20000 +を見て

おすすめ

転載: blog.csdn.net/xiaozhezhe0470/article/details/104353235