クレソンTOP250をクロールデータ - 学習の例

  開発環境:(Windowsの場合)日食+ PyDevは

  URL:https://book.douban.com/top250?start=0

lxmlのインポート etreeの         データを抽出するために解析された
インポート要求の                #は、取得したウェブページのデータを要求された
インポート CSVの                     #のストアデータ

FP =オープン(' :\ Pyproject \ douban.csv D '' 重量'、NEWLINEは= '' エンコード= " UTF 8 'csvファイルの作成 
ライター= csv.writer(FP)
writer.writerow((' 名前' ' URL ' ' 著者"' 出版'' DATE '' 価格'' レート'' コメント'))  書き込みヘッダ情報、すなわち、第一列

のURLの = [ ' https://book.douban.com/top250?start {} = ' .format(STR(I))のための I における(0,250,25)]レンジ    #の建設のURLの

ヘッダー = { ' User--エージェント''Mozillaの/ 5.0(Windows NTの10.0; Win64の、x64の)のAppleWebKit / 537.36(KHTML、ヤモリなど)クローム/ 76.0.3809.100サファリ/ 537.36 " } 

のための URL のURL:                      #1 サイクルのURLは、最初の(小さなを把握した後、大きなを把握します! !重要なのは、以下の詳細な) 
    HTML = requests.get(URL、ヘッダ= ヘッダ)
    セレクタ = etree.HTML(html.text)
    に関する情報 = selector.xpath(' // TR [クラス@ = "項目"] ' のための情報に関する情報:
        名前 = info.xpath(' TD / DIV / A / @タイトル' 
        URL = info.xpath("TD / DIV / /のhref @ ' 
        book_infos = info.xpath(' TD / P /テキスト()' )[0] 
        著者 = book_infos.split(' / ' )[0] 
        出版社 = book_infos.split(' / ')[ - 3 ] 
        日付 = book_infos.split(' / ')[ - 2 ] 
        価格 = book_infos.split(' / ') - 1 ] 
        速度 = info.xpath(' TD / DIV /スパン[2] /テキスト()" 
        のコメントInfo.xpath =(' TD / Pは/スパン/テキスト()' 
        コメント =コメント[0] IF LEN(コメント)!= 0 他の '' 
        writer.writerow((名前、URL、著者、出版社、DATE ,.価格、レート、コメント))   書き込みデータ 
fp.close()                          忘れてはいけない、csvファイルを閉じます

結果は:

#文字化けエラー、開くために、メモ帳を使用して、UTF-8のファイル解決さとして保存

例は、主に、CSVライブラリの使用を学習し、バッチデータフェッチ(つまり、最初の大きなキャッチ、キャッチが小さい、ループポイントを探してください)

CSVファイルを作成し、データを書き込みモードCSVライブラリ:

インポートのCSV 
FP =(' C://Users/LP/Desktop/text.csv '' + W ' 
ライター = csv.writer(FP)
writer.writerow(' ID '' 名前' 
writer.writerow(' 1 ' ' 10月' 
writer.writerow(' 2 ' ' 11月'写入行 
fp.close()

データをフェッチバッチ:

)セレクタで実行可能ではない同様のBeautifulSoup(によって述語部分を削除し、アイデアがあるべき「第一大漁、漁獲量が少なく、サイクルポイントを探し、」(手書き、非コピーXPathを)

クロームオープンブラウザは、完全な情報タグを見つけ、要素を折りたたみ、「三角形の記号を」「チェック」下記のように

(セレクタ()パスの発現後、最大面積のデータセットを取得し、第1のプリ列)

 個々のデータ(名前、価格など)別の後:

そのような名前、自宅のように:<A> - >の<div> - > <TD>

 したがって、家庭:(不変点は、どちらがより少ない範囲である場合) 

名前= info.xpath(' TD / DIV / A / @タイトル'

 

おすすめ

転載: www.cnblogs.com/junecode/p/11443471.html