温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python怎么抓取淘宝商品信息

发布时间:2021-11-25 09:55:47 来源:亿速云 阅读:440 作者:iii 栏目:大数据

这篇文章主要介绍“Python怎么抓取淘宝商品信息”,在日常操作中,相信很多人在Python怎么抓取淘宝商品信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么抓取淘宝商品信息”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

        对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取。

        Selenium是一个用于Web应用程序测试的工具,它可以在浏览器中运行,模拟用户真实的浏览网页操作,也就是说可以实现浏览器加载页面,搜索关键字和点击翻页等等操作,因此,就算使用了异步加载技术的网页,也可以模拟翻页得到不同的网页,也就可以得到你想要的数据了。

        Selenium模块在第三方库里面可以找到,使用pycharm软件,打开左上角PyCharm->项目->python解释器->preferences里面添加,结果如下图进行搜索安装即可。

Python怎么抓取淘宝商品信息

       由于Selenium自己不带有浏览器,因此需要配合我们自己电脑安装的浏览器来使用,这里我们是通过常用的Chrome浏览器来模拟实现爬取数据。具体可以模拟的操作主要有如下一些操作:输入框内容填写、点击按钮、截屏、下滑等,因此对于登录网站的时候,我们可以不再需要构造表单或者提交cookie来登录网站了,只需要通过python代码模拟输入《账号》和《密码》实现登录。

(1)以下是模拟搜索和登录最常用代码

Python怎么抓取淘宝商品信息

(2)登录后获取数据的常用代码

Python怎么抓取淘宝商品信息

备注:此处xpath和单独的xpath方法差异就是此处是在最后加.text,单独xpath是在路径里面加/text()

以上是selenium基本要点,现在让我们开始进行实践操刀,如何来对淘宝商品信息进行抓取。

工具和语言:Selenium+Chrome+PyCharm+Python

抓取平台:www.taobao.com

抓取思路:以抓取我最近想入手的投影仪商品为例

(1)打开淘宝网,输入投影仪,得到商品信息页面

(2)打开网页源代码,查看输入投影仪后的搜索框位置如下图,确定位置,为后续输入关键字做准备

Python怎么抓取淘宝商品信息

(3)有时在你点击搜索后,淘宝强制需要登录网页,就需要再次查看输入账号和密码的位置,然后同理操作进入网页,在此不再赘述,直接上代码如下

Python怎么抓取淘宝商品信息

(4)接下来要模拟翻页操作,同理也是找到翻页位置:下一页,如下图

Python怎么抓取淘宝商品信息

(5)此时页面上有的信息都可以尝试查看,举例如付款人数、价钱等都可以尝试测试看看。

Python怎么抓取淘宝商品信息(6)最后数据存储数据库就可以了,详细入库代码见详细代码部分

详细代码如下:

from selenium import webdriverfrom lxml import etreeimport timeimport pymysql
db = pymysql.connect(host='localhost', user='root', passwd='数据库密码', db='数据库名称', port=3306, charset='utf8')print("数据库连接")cursor = db.cursor()cursor.execute("DROP TABLE IF EXISTS Learn_data.taobao_touyingyi_data")sql = """CREATE TABLE IF not EXISTS Learn_data.taobao_touyingyi_data (    id int auto_increment primary key,    price CHAR(100),    sell CHAR(100),    detail CHAR(100))DEFAULT CHARSET=utf8"""cursor.execute(sql)
driver=webdriver.Chrome()driver.maximize_window()def get_info(url,page):    page=page+1    driver.get(url)    driver.implicitly_wait(10)    selector=etree.HTML(driver.page_source)    infos=selector.xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq  "]')    for info in infos:        price = info.xpath('div[2]/div/div/strong/text()')[0]        sell = info.xpath('div[2]/div/div[2]/text()')[0]        detail = info.xpath('div[2]/div/div[2]/text()')[1]
       print(price,sell,detail)
       cursor.execute("insert into taobao_touyingyi_data (price,sell,detail)values(%s,%s,%s)",(str(price),str(sell),str(detail)))
   if page<=1:        NextPage(url,page)    else:        passdef NextPage(url,page):    print(url)    driver.get(url)    driver.implicitly_wait(10)    driver.find_element_by_xpath('//a[@trace="srp_bottom_pagedown"]').click()    time.sleep(4)    driver.get(driver.current_url)    driver.implicitly_wait(10)    get_info(driver.current_url, page)
if __name__=='__main__':    page=1    url='https://www.taobao.com/'    driver.get(url)    driver.implicitly_wait(10)    driver.find_element_by_id('q').clear()    driver.find_element_by_id('q').send_keys('投影仪')    driver.find_element_by_class_name('btn-search').click()
    driver.find_element_by_id("fm-login-id").send_keys("账号")    # 找到按钮的位置    time.sleep(1)    # 找到密码的位置    driver.find_element_by_id("fm-login-password").send_keys("密码")    # 确保账号和密码输入完成    time.sleep(3)    # 识别验证码    # 找到图片地址    ret = driver.find_element_by_class_name("fm-button")    # 点击按钮    ret.click()    time.sleep(3)    print(driver.current_url)    get_info(driver.current_url,page)    db.commit()

运行数据库结果如下:

Python怎么抓取淘宝商品信息

到此,关于“Python怎么抓取淘宝商品信息”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI