普通网友 2016-09-15 14:40 采纳率: 0%
浏览 1112

渣渣请教python爬虫xpath问题

各位大神,小弟我最近爬取闲鱼商品的时候出现个问题:
这个是网页源码截图,我想爬取里面这个赞数:
图片说明
网页链接:https://2.taobao.com/item.htm?id=538626368021
下面是我的源码:

 #! /usr/bin/env python
#coding=utf-8

import urllib
from bs4 import BeautifulSoup
import re
from lxml import etree

"""
https://s.2.taobao.com/list/list.htm?\
spm=2007.1000337.0.0.WOjjAq&st_trust=1&page=3&q=%C0%D6%B8%DF&ist=0
"""


def get_html(page=1, q="lego"):
    """获取商品列表页源代码,返回源代码content"""
    params = {
              "spm":"2007.1000337.0.0.WOjjAq",
              "st_trust":"1",
              "page":page,
              "q":q,
              "ist":"0"
     }

    info = urllib.urlencode(params)
    url = "https://s.2.taobao.com/list/list.htm?" + info

    html = urllib.urlopen(url)
    content = html.read()
    html.close()

    return content



def get_url(content):
    """从商品列表页源代码中获取商品页url,返回url的列表"""
    soup = BeautifulSoup(content, "lxml")
    div_box = soup.find_all('div', class_='item-info')

    url_list = []

    for div in div_box:
        url=div.find('h4', class_='item-title').a['href']
        url_c = "https:" + url
        url_list.append(url_c)    

    return url_list



def get_product(url):

    html = urllib.urlopen(url)
    content = html.read()
    html.close()
    content1 = content.decode('gbk').encode('utf-8')

    rempat = re.compile('&')
    content1 = re.sub(rempat,'&',content1)

    root = etree.fromstring(content1)
    zan = root.xpath('.//div[@id="J_AddFav"]/em/text()]')
    return zan

if __name__ == '__main__':

    content = get_html(1,"lego")
    url_list = get_url(content)
    url1 = url_list[1]
    print url1
    print get_product(url1)

问题出现在这里:

 root = etree.fromstring(content1)

图片说明

除了将&替换成&外没有对网页源码进行改动,不知为何源码会报错……

谢谢各位大神了,我是技术渣(我是学化学的……最近工作需要,拿闲鱼来练手,结果卡在这里一天了)

  • 写回答

1条回答

  • oyljerry 2016-09-16 03:46
    关注

    content1的内容打印看看,好像格式不对

    评论

报告相同问题?

悬赏问题

  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀