しかし、また、爬虫類の友人の面で

今日の仕事を持っているだけでは、爬虫類を行うことです、その後に続く昨日の勢いは爬虫類の話を続けて

タスク:

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
基本的にタスクは、ダウンロードに情報クレソンTOP250書籍、書かれた文書や画像クロールされます

爬虫類分析

ここに画像を挿入説明

  • あなたは私たちが必要とするすべての情報を取得することができ、我々は詳細ページをクロール行く必要はありませんすべてのページで見ることができます。
  • そして、問題は、各ページのURLを反転されます。https://book.douban.com/top250(ページ1)* 25を開始しますか=?
  • CSVファイルが同じように使用することが書かれています
  • 使用のxpathに解決、私は基本的に十分に解決する方法のマスター三〇から四種類ので、同様に当然のことながら、もう少し身近なXPathの再使用にそれらを考えて、CSSセレクタ。

コードセクション:

import requests
from lxml import etree
import csv
import os

#请求网页并解析得到我们想要的内容
def get_informations(url):
    res=requests.get(url,headers=headers)
    selector=etree.HTML(res.text)
    infos=selector.xpath('//tr[@class="item"]')
    for info in infos:
        image=info.xpath("td/a[@class='nbg']/img/@src")[0]#图片网址
        pic_list.append(image)
        name=info.xpath('td/div/a/@title')[0]#标题
        names.append(name)
        book_infos=info.xpath('td/p/text()')[0]
        author=book_infos.split('/')[0]#作者
        publisher=book_infos.split('/')[-3]#出版社
        date=book_infos.split('/')[-2]#出版日期
        price=book_infos.split('/')[-1]#价格
        num=info.xpath('td/div/span[3]/text()')[0]#评价人数
        rate=info.xpath('td/div/span[2]/text()')[0]#评分
        coments=info.xpath('td/p/span/text()')#简介
        coment=coments[0] if len(coments)!=0 else "空"
        writer.writerow((author,date,price,coment,num,rate,name))

#下载图片
def get_image():
    savePath = './豆瓣图书250图片'
    #创建文件夹保存图片
    if not os.path.exists(savePath):
        os.makedirs(savePath)
    #遍历图片网址,保存图片
    for i in range(len(pic_list)):
        html = requests.get(pic_list[i], headers=headers)
        if html.status_code == 200:
            with open(savePath + "/%s.jpg" % names[i], "wb") as f:
                f.write(html.content)
        elif html.status_code == 404:
            continue

#主函数,调用上面的函数
def main():
    for url in urls:
        get_informations(url)
    get_image()


if __name__ == '__main__':
	#请求头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36'}
        
    urls = ['https://book.douban.com/top250?start={}'.format(str(i)) for i in range(0, 226, 25)]#爬取的网址
    # 新建并打开csv文件,写入表头
    fp = open(r"./豆瓣图书.csv", 'wt', newline="", encoding="utf-8")
    writer = csv.writer(fp)
    writer.writerow(('author', 'press_time', 'price', 'produce', 'rating_num', 'rating_score', 'title'))
    #保存图片网址和图片名,方便保存
    pic_list = []
    names = []
    main()
    fp.close()
    print("文件和图片都爬取完毕!")

業績

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
10分長さ約それを書き留め、それを完了するために必要な、興味を持っている自分自身を試すことができます。

公開された85元の記事 ウォン称賛55 ビュー20000 +

おすすめ

転載: blog.csdn.net/shelgi/article/details/103639433