码迷,mamicode.com
首页 > 其他好文 > 详细

爬虫 爬取天猫商品的封面信息

时间:2019-08-14 23:16:48      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:product   put   获得   value   多次   int   ESS   fir   因此   

# 爬取搜索字段的封面信息

‘‘‘
q : 搜索的类型 可以识别中文

天猫控制登录字段:
sort: 排序
s:起始第几个商品   

问题1: 把s删除以后,虽说可以跳过登陆,但是只能访问第一页了,何解?
解决:  多次点击页面后发现,淘宝测试不完全,在点击跳转页面后,将其的url后的参数只保留
     q   totalPage   jumpto  三个字段后,就可以通过修改jumpto字段的值 来跳转到其他的页面
     
问题2: 解决登陆问题后,发现无法提前知道totalpage的总页数
解决:只要页面有显示,那我们就能拿到对应的数据,因此可以再search里输入totalPage字段,
发现该字段在input输入框内,拿到对应的属性,通过css的find查找,获得其值
‘‘‘

from requests_html import HTMLSession

session = HTMLSession()

keyword = input(输入要爬取的商品:)


params = {
    totalPage:12,
    jumpto:2,
    q:keyword
}

url = https://list.tmall.com/search_product.htm?

# 获取总页数:
def get_totalPage(url,params):
    r = session.request(method=get,url=url,params=params)
    totalPage = int(r.html.find([name="totalPage"],first=True).attrs.get(value))
    params[totalPage] = totalPage

# 改变jumpto字段的值,实现多次访问
def get_params(params,totalPage):
    for i in range(1,totalPage+1):
        params[jumpto] += 1
        yield params


# 获取男装的信息
def get_info(url,params):
    r = session.request(method=get,params=params,url=url)
    product_list = r.html.find(.product)
    for product_element in product_list:
        try:
            product_img_url = product_element.find(.productImg-wrap a img,first=True).attrs.get(src)
            product_title= product_element.find(.productTitle a,first=True).attrs.get(title)
            product_price = product_element.find(.productPrice em,first=True).attrs.get(title)
            product_shop_url = product_element.find(.productShop a,first=True).attrs.get(href)
            product_volume = product_element.find(.productStatus em,first=True).text

            print(product_img_url)
            print(product_title)
            print( product_price )
            print(product_shop_url)
            print(product_volume)
        except:
            print(部分商品详情存在问题!)  # 部分商品缺失字段,需要异常捕获

get_info(url,params)
for param in get_params(params,params[totalPage]):
    get_info(url,param)

 

爬虫 爬取天猫商品的封面信息

标签:product   put   获得   value   多次   int   ESS   fir   因此   

原文地址:https://www.cnblogs.com/changwenjun-666/p/11355209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!