请稍等 ...
×

采纳答案成功!

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

正在回答

3回答

NavCat 2018-11-08 22:50:46

使用如下步骤试试:

  1. 浏览器登录淘宝

  2. 按下图找到cookie

    https://img1.sycdn.imooc.com//szimg/5be44ce20001cf4315910885.jpg

  3. 配置请求头信息

import requests
import re
import json
 
def spider_tb(sn ,book_list=[]):
    url = 'https://s.taobao.com/search?q={0}'.format(sn)
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
        'cookie': '你的cookie'
    }
    # 获取html内容
    text = requests.get(url, headers=headers).text
 
    # 使用正则表达式找到json对象
    p = re.compile(r'g_page_config = (\{.+\});\s*', re.M)
    rest = p.search(text)
    if rest:
        print(rest.group(1))
        data = json.loads(rest.group(1))
        bk_list = data['mods']['itemlist']['data']['auctions']
 
        print (len (bk_list))
        for bk in bk_list:
            #标题
            title = bk["raw_title"]
            print(title)
            #价格
            price = bk["view_price"]
            print(price)
            #购买链接
            link = bk["detail_url"]
            print(link)
            #商家
            store = bk["nick"]
            print(store)
            book_list.append({ 'title' : title, 'price' : price, 'link' : link, 'store' : store })
            print ('{title}:{price}:{link}:{store}'.format( title = title, price = price, link = link, store = store )) 
 
 
 
if __name__ == '__main__':
    spider_tb('9787115428028')

查看结果

https://img1.sycdn.imooc.com//szimg/5be44d400001bc8818880924.jpg

0 回复 有任何疑惑可以回复我~
  • 老师 运行你最新的代码 不行
    Traceback (most recent call last):
      File "C:/PYTOOLS/static/spider_taobao.py", line 42, in <module>
        spider_tb('9787115428028')
      File "C:/PYTOOLS/static/spider_taobao.py", line 13, in spider_tb
        text = requests.get(url, headers=headers).text
      File "C:\PYTOOLS\venv\lib\site-packages\requests\api.py", line 75, in get
        return request('get', url, params=params, **kwargs)
      File "C:\PYTOOLS\venv\lib\site-packages\requests\api.py", line 60, in request
        return session.request(method=method, url=url, **kwargs)
      File "C:\PYTOOLS\venv\lib\site-packages\requests\sessions.py", line 533, in request
        resp = self.send(prep, **send_kwargs)
    回复 有任何疑惑可以回复我~ 2018-12-02 20:12:56
提问者 Samuel10 2018-11-08 20:42:46

https://img1.sycdn.imooc.com//szimg/5be42e230001ae1b11180555.jpg老师获取不到P的值是什么情况呢

0 回复 有任何疑惑可以回复我~
  • NavCat #1
    再汪下执行一步,看看p
    回复 有任何疑惑可以回复我~ 2018-11-08 21:48:04
  • 提问者 Samuel10 回复 NavCat #2
    rest是None
    回复 有任何疑惑可以回复我~ 2018-11-08 22:07:39
NavCat 2018-11-06 22:57:35

https://img1.sycdn.imooc.com//szimg/5be240ae0001413713370665.jpg

这就奇怪了,我的可以呀,你的是什么操作系统?也没报错吗?

0 回复 有任何疑惑可以回复我~
  • 提问者 Samuel10 #1
    回老师是win10
    回复 有任何疑惑可以回复我~ 2018-11-07 11:59:42
  • NavCat 回复 提问者 Samuel10 #2
    我的也是win10,你其它地方建一个py文件,把代码帖进去,运行试下,看看报错信息
    回复 有任何疑惑可以回复我~ 2018-11-07 14:02:43
  • 提问者 Samuel10 回复 NavCat #3
    老师这段代码可以放在群共享吗
    回复 有任何疑惑可以回复我~ 2018-11-08 21:48:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信