淘宝商品信息爬取(可运行)Python爬虫与信息提取(北京理工大学-嵩天)

 先贴代码

注意:现在还不能运行,要先填写user-agent与cookie部分,然后才能运行,关于如何查看user-agent与cookie在文末有链接。

import requests
import re
 
def getHTMLText(url):
    try:
        header={
            'user-agent':'Mozilla/5.0',
            'cookie':'_samesite_flag_=true; *************************'}
        r=requests.get(url,headers=header,timeout=30)
        #添加了更改headers的代码,可以避免被淘宝验证信息拦截
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return ""
 
def parsePage(ilt,html): 
    try:
        plt=re.findall(r'\"view_price\"\:\"[\d\.]*"',html)
        #'\'具有转义作用,在“、“、:等转义符号前使用,可以将其声明为文本义,
        #[\d\.]*分割为[\d(任意一个数字)\(或者).(小数点)]*(出现0次至无数次)  
        #意思是:任意数字或者小数点出现0次至无数次,包括了浮点数和整数.
        tlt=re.findall(r'\"raw_title\"\:\".*?"',html)
        #'\'意义同上, '.*?'的意思是:任意一个字符出现0次至无数次(非贪婪模式)  
        #贪婪模式:在整个表达式匹配成功的前提下,依然尽可能多的去匹配(找到能用的,还要继续找,直到找到最长的)   
        #非贪婪模式:在整个表达式匹配成功的前提下,尽可能少的去匹配(找到匹配的,能用就行,用最短的)
        for i in range(len(plt)):
            price=eval(plt[i].split(':')[1])
            #findall函数以列表类型返回所有匹配的字符串
            #例子: ['"view_price1":"100.00"','"view_price2":"200.00"'],
            #先取出其中一个元素'"view_price1":"100.00"',然后以':'分割成两个成'"view_price1"和"100.00"',
            #取倒数第一个,也就是价格,使用eval函数去掉"100.00"'的单引号,成为标准字符串形式”100.00“
            title=eval(tlt[i].split(':')[1])
            #取商品名
            ilt.append([price,title])
            #以列表形式在列表ilt中存储价格和商品名,ilt=[[”10.00“,”a“],[”20.00“,”b“]]
    except:
        print("")
 
def printGoodlist(ilt): 
    tplt="{:4}\t{:8}\t{:16}"
    #\t的含义是:一个\t相当于8个空格,跳到下一个位置,
    #{:4}\t{:8}\t{:16}控制字符串宽度为4、8、16,如果若给出的宽度小于字符串本身的宽度,会按照字符串本身的宽度进行显示
    print(tplt.format("序号","价格","商品名称"))
    count=0
    for g in ilt:#g是列表形式
        count=count+1
        print(tplt.format(count,g[0],g[1]))#tplt.format(1,"10.00","a")
 
 
def main(): 
    goods='书包'#可随便更改
    depth=2 #爬取深度即页数
    start_url='https://s.taobao.com/search?q=' + goods
    indolist=[] 
    for i in range(depth):
        try:
            url=start_url + '&s=' + str(44*i)#使其符合翻页后的url链接
            html=getHTMLText(url)#得到html页面
            parsePage(indolist,html)#将html页面的商品信息提取并存入infolist列表内
        except:
            continue
    printGoodlist(indolist)#打印出infolist内的商品信息
 
main()

 

这个程序是我在上课后,收集资料+改写+参考别人代码得到的最终版本,关于代码的解释基本全都放在了注释部分

参考资料:

查看网页的user—agent和cookie:(6条消息) 问题解决:查看网页的cookie和user-agent_Mr.Q_LuLu的博客-CSDN博客

正则表达式中'\'的作用:(6条消息) java正则表达式中\_liang0000zai的专栏-CSDN博客

贪婪与非贪婪:(6条消息) 正则表达式之 贪婪与非贪婪模式详解(概述)_smileit的博客-CSDN博客_贪婪 非贪婪

format函数的作用:(6条消息) format函数用法详解_PT、小小马的博客-CSDN博客_format函数用法

正则表达式find_all函数:(6条消息) Python re.findall() 函数正则表达式(一)_Rich Dad的博客-CSDN博客

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现Python爬取淘宝网站商品信息并跳过登录,可以采取以下几个步骤: 1. 导入所需的库:首先,需要导入相关的库,如requests库用于发送HTTP请求,BeautifulSoup库用于解析网页内容。 2. 发送请求获取网页内容:使用requests库发送请求,模拟浏览器访问淘宝网站,并获取网页的HTML内容。 3. 解析网页内容:使用BeautifulSoup库对获取的网页内容进行解析,提取出需要的商品信息。可以通过查看淘宝网站的HTML结构和CSS选择器来定位和提取所需的信息。 4. 分析和处理数据:获取到商品信息后,可以进行数据分析和处理。比如可以统计不同类别的商品数量,价格分布等,并使用合适的可视化工具展示分析结果。 5. 跳过登录:一般情况下,淘宝网站为了保护用户隐私,需要进行登录才能爬取具体的商品信息。如果要跳过登录,可以使用一些技巧,如使用Cookie模拟登录状态,或者直接通过URL获取商品数据。 总结起来,实现Python爬取淘宝网站商品信息并跳过登录的关键是通过网络请求和HTML解析库获取网页内容,并使用适当的技巧绕过登录限制,最后进行数据分析和处理。 ### 回答2: 要实现Python淘宝网站的商品信息爬取与分析,并跳过登录流程,可以通过以下步骤进行: 1. 安装必要的库:首先,需要安装Python的相关库,如requests、BeautifulSoup等。使用pip install命令可以方便地安装这些库。 2. 模拟浏览器登录请求:在请求淘宝网站之前,需要模拟登录获取到有效的登录凭证(cookies)。通过在浏览器中登录淘宝,并使用开发者工具获取到登录请求的headers和cookies,然后在代码中设置这些信息。 3. 发送搜索请求并获取商品信息:使用requests库发送搜索请求,并将模拟登录的cookies添加到请求的headers中。接着,解析返回的HTML页面,可以使用BeautifulSoup库来处理HTML文档,并提取所需的商品信息。 4. 数据处理与分析:对获取到的商品信息进行处理和分析。可以使用pandas库将数据转换为数据框(DataFrame),方便进行后续的数据操作和分析。可以计算各商品的销量、价格等指标,并进行排序、筛选等操作。 5. 可视化展示:可以使用matplotlib、seaborn等库对数据进行可视化展示。例如,绘制商品销量的柱状图、价格的分布图等。这样能更直观地展示数据,帮助进行进一步的分析。 需要注意的是,在进行淘宝商品信息爬取时,需要遵守网络爬虫的规范,并确保自己的行为合法合规,不侵犯他人的权益。同时,由于淘宝的网页结构可能会不断变化,因此需要根据实际情况对代码进行适当的调整和更新。 ### 回答3: Python 可以使用一些库和技术,来爬取淘宝网站的商品信息并进行分析,而无需登录。下面是利用 Python 实现该功能的方法。 首先,可以使用 requests 库发送 HTTP 请求获取网页内容。通过向淘宝网站发送请求,并指定相关的搜索参数,可以得到返回的 HTML 页面。 接下来,可以使用 BeautifulSoup 库解析 HTML 页面,提取所需的商品信息。通过分析 HTML 页面的结构,可以使用该库提供的各种方法和选择器,来获取商品的标题、价格、销量等信息。 爬取到的商品信息可以存储在数据库中,或者写入到文件中进行后续分析。程序可以使用 MySQL 或者 MongoDB 等数据库来存储数据,或者使用 CSV 或者 JSON 格式来保存数据。 分析数据时,可以使用 pandas 库进行数据处理和清洗。通过读取数据库或者文件中的数据,可以使用 pandas 提供的各种函数和方法,对数据进行统计、排序、筛选等操作。 为了更好地展示和分析数据,可以使用 matplotlib 或者 seaborn 等数据可视化库。这些库可以绘制各种图表,如柱状图、折线图、散点图等,以便更直观地理解和分析商品信息。 值得注意的是,为了遵守法律法规和网站的使用规定,爬取数据时应遵循相关的规定,并尽可能避免对网站造成过大的压力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值