Python爬取ALIEXPRESS电商网站

首先,这里使用的是简单的方法——“requests”模块。这种方法适合初学者使用,如果你想挑战更高级别的你可以自学scrapy爬虫框架,里面有一个“crawlscrapy”分支更是强大;下面就简单的介绍一下爬取这个电商网站。主要还是知道大概的流程之后写爬虫就很简单了。

可能在写完爬虫代码运行一小段后会出现让你登录的情况,这个你可以手动登录,也可以使用python支持的自动点击模块pyautogui。

那么进入正题。。。。。

拿到任务的执行顺序

1.分析目标url

2.构建请求头

3.发起请求

4.接收返回的响应结果,查看获取到的页面源码(有些网站你是需要解码的,用decode方法)

5.这里我是要获取搜索到的商品标题价格等(可以使用xpath、bs4、pyquery进行匹配字段)

下面是源代码。。。。

import requests
from lxml import etree

url = 'https://www.aliexpress.com/wholesale?initiative_id=SB_20190514011143&site=glo&SearchText=phone&page='
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',
}

def geturl():
	#分析url,写一个for循环进行拼接url,获取到1-100页url地址,下面的i一定要进行str字符串格式转换。
    for i in range(1,101):
        start_url = 'https://www.aliexpress.com/wholesale?initiative_id=SB_20190514011143&site=glo&SearchText=phone&page='+(str(i))
        # print(start_url)
        getdata(start_url)   #调用这个函数将获取到的url传给getdata函数
def getdata(start_url):
	#接收传递来的url发起请求,这里是get请求
    response = requests.get(start_url,headers=headers)
    if response.status_code == 200:
        # print('请求成功')

        html = response.content
        html1 = html.decode('utf-8')
        # print(html1)
        #保存页面源码
        # for i in range(1,101):
        #     with open(str(i) + '.html', 'a') as file:
        #         file.write(str(html1))
        #         print('保存成功')


        c_data = etree.HTML(html1)
        list_data = c_data.xpath('//ul[@id="hs-list-items"]/li[@class="list-item list-item-first util-clearfix  list-item-180 "]/div[@class="right-block util-clearfix"]')
        for l_data in list_data:
            datas = {}
            datas['titles'] = l_data.xpath('../div[@class="right-block-wrap util-clearfix"]/div[@class="detail"]/h3[@class="icon-hotproduct"]/a/@title')


            print(datas)


if __name__ == '__main__':
    geturl()

你可能感兴趣的:(python)