ul_list返回空值

来源:2-10 爬取1号店的数据

翻版郭富城

2019-02-25

格式和符号全都是英文书写,但是ul_list返回的是0
代码如下:
from lxml import html
import requests

def spider(sn):
""“爬取1号店的图书数据”""
url = ‘http://search.yhd.com/c0-0/k{0}/’.format(sn)

#获取html
html_doc = requests.get(url).text

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

#获取书的列表
ul_list = selector.xpath('//div[@itemSearchList]/div')
print(len(ul_list))

if name == “main”:
spider(“9787115428028”)

写回答

3回答

David璐_senior_DBA

2019-04-26

# author: David
# -*- coding:utf-8 -*-
import requests
from lxml import html


def spider(isbn):
    """ 爬取1号店的图书信息 """
    url = 'https://search.yhd.com/c0-0/k{0}/'.format(isbn)

    # 获取 html 源码
    html_doc = requests.get(url).text

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

    # 找到书籍列表
    ul_list = selector.xpath('//div[@id="itemSearchList"]/div')
    print(len(ul_list))

    # 解析内容
    for li in ul_list:
        # 获取标题
        title = li.xpath('div/p/a[@class="mainTitle"]/text()')
        if not title:
            title1 = li.xpath('div//p/a[@pmid="0"]/text()')
            print("商品标题:", title1[1].strip())
        else:
            print("商品标题:", title[1].strip())

        # 获取链接
        link = li.xpath('div/p/a[@class="mainTitle"]/@href')
        if not link:
            link1 = li.xpath('div//p/a[@pmid="0"]/@href')
            print("商品链接:", link1[0].replace('//', 'http://'))
        else:
            print("商品链接:", link[0].replace('//', 'http://'))

        # 获取价格
        price = li.xpath('div/p/em[@class="num"]/text()')
        print("商品价格:", price[1].strip())

        # 获取店铺
        store = li.xpath('div/p/a/span[@class="shop_text"]/text()')
        print(" 店铺名:", store[0])

        # 我是分割线
        print('--------------------------')


if __name__ == '__main__':
    isbn = 9787115478818
    spider(isbn)


1
0

NavCat

2019-02-26

//img.mukewang.com/szimg/5c74ad0900019c3907960512.jpg

你这代码有很多语法都不对啊,注意不要用中文的引号,要使用英文半角的。

1
3
David璐_senior_DBA
我发现1号店的title有的拿不全标题,a的text里面有个标题可以全部拿出来。 我修改了一下,回复下面了。
2019-04-26
共3条回复

NavCat

2019-02-26

爬虫规则如下:

//img.mukewang.com/szimg/5c74b4b00001f98a09110381.jpg

0
0

手把手教你把Python应用到实际开发 不再空谈语法

学会项目开发思路,掌握Python高阶用法。

1341 学习 · 244 问题

查看课程