请稍等 ...
×

采纳答案成功!

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

京东数据爬不到

import requests
from lxml import html


def spider(sn):
    """爬取京东的图书数据"""
    url = 'https://search.jd.com/Search?keyword={0}'.format(sn)
    # html文档

    html_doc = requests.get(url).text
    print(html_doc)


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

图片描述

老师你好,京东网的数据爬不到了。请问有什么解决办法么?

正在回答

1回答

添加useragent请求头,代码参考:

import requests
from lxml import html
 
 
def spider(sn):
    """爬取京东的图书数据"""
    url = 'https://search.jd.com/Search?keyword={0}'.format(sn)
    #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 = 'utf8'
    # html_doc = requests.get(url).text
    html_doc = resp.text
    print(html_doc)
 
    #获取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__':
    spider('9787115428028')


1 回复 有任何疑惑可以回复我~
  • 提问者 rannrann #1
    谢谢老师!!!!!爱你~
    回复 有任何疑惑可以回复我~ 2018-12-28 08:36:00
  • 提问者 rannrann #2
    我写不出来这样的代码是因为知识的欠缺。请问老师,这块知识应该叫什么,是请求响应的原理么??
    回复 有任何疑惑可以回复我~ 2018-12-28 08:43:49
  • NavCat 回复 提问者 rannrann #3
    是的,还有一些网站实现的几种思路,爬虫与反爬的机制等
    回复 有任何疑惑可以回复我~ 2018-12-28 14:42:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信