请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,能够把排序后的数据存放到excel吗?我想看下把数据放到本地的代码

正在回答

2回答

NavCat 2019-04-17 13:08:29
import requests
from lxml import html
from openpyxl import Workbook


def spider(sn, book_list=[]):
    """ 爬取京东的图书数据 """
    url = 'https://search.jd.com/Search?keyword={0}'.format(sn)
    print(url)

    wb = Workbook()
    ws = wb.active
    ws.title = '京东图书爬取'
    ws.append(['标题', '价格', '店铺', '购买链接'])
    
    # 获取HTML文档

    resp = requests.get(url, headers={
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6776.400 QQBrowser/10.3.2601.400'
    })
    print(resp.encoding)
    resp.encoding = 'utf-8'

    html_doc = resp.text

    # 获取xpath对象
    selector = html.fromstring(html_doc)

    # 找到列表的集合
    ul_list = selector.xpath('//div[@id="J_goodsList"]/ul/li')
    print(len(ul_list))

    # 解析对应的内容,标题,价格,链接
    for li in ul_list:
        # 标题
        title = li.xpath('div/div[@class="p-name"]/a/@title')
        print(title[0])
        # 购买链接
        link = li.xpath('div/div[@class="p-name"]/a/@href')
        print(link[0])

        # 价格
        price = li.xpath('div/div[@class="p-price"]/strong/i/text()')
        print(price[0])

        # 店铺
        store = li.xpath('div//a[@class="curr-shop"]/@title')
        print(store[0])

        book_list.append({
            'title': title[0],
            'price': price[0],
            'link': link[0],
            'store': store[0]
        })

        # 添加新的行
        l = [title[0].encode('utf-8'), price[0].encode('utf-8'), store[0].encode('utf-8'), link[0].encode('utf-8')]
        ws.append(l)

    wb.save('./book_jd.xlsx')


if __name__ == '__main__':
    spider('9787115428028')


0 回复 有任何疑惑可以回复我~
NavCat 2019-04-10 23:58:31

可以的,不过你要稍等下,我写好贴给你参考,你也可以学习下后面的python操作excel尝试着写一下,其实不难的。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕慕8105830 #1
    老师,存到本地的代码有了吗?
    回复 有任何疑惑可以回复我~ 2019-04-16 16:35:45
  • NavCat 回复 提问者 慕慕8105830 #2
    你参考下,这个是京东的
    回复 有任何疑惑可以回复我~ 2019-04-17 13:08:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信