老师您好,有两个问题,爬京东页面时useragent加了,编码也是utf-8,但还是乱码;第二个问题是tab里面多个选项卡怎么获取呢,如图,获取的多个数组为空

来源:2-9 爬取京东网的数据

百里宏音

2020-03-02

import requests
from lxml import html

def spider_jd(sn):
    url = 'https://search.jd.com/Search?keyword={0}'.format(sn)
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
    }

    #获取HTML
    html_doc = requests.get(url,headers=headers).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)


if __name__ == '__main__':
    sn = 'python'
    spider_jd(sn)

图片描述

写回答

1回答

NavCat

2020-03-03

你可以打印下看看拿到的请求结果的编码

    resp = requests.get(url,headers=headers)
    print(resp.encoding)       # 查看编码
    resp.encoding = 'utf-8'    # 设置新的编码

    html_doc = resp.text


0
2
NavCat
回复
百里宏音
不错哦,继续保持
2020-03-04
共2条回复

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

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

1341 学习 · 244 问题

查看课程