python淘宝爬虫基于requests抓取淘宝商品数据

在学校蹭过python的课,觉得python异常强大,趁寒假有时间,瞎搞一下,希望能和大伙一起探讨学习。废话不多说了,直接正题。

requests 是Python的http库,可以完成绝大部分与http应用相关的工作,当然对一些常规的数据抓取还是很方便。 
详细看手册: 
http://docs.python-requests.org/zh_CN/latest/user/quickstart.html

比如这两行代码 
url=”www.baidu.com” 
resp = requests.get(url)

requests的 get 返回值是一个 Response 对象,这个对象有很多属性text、encoding、status_code、links等,(具体用help查看啦0.0),这个对象的text属性即(resp.text)包含了相应的HTML文本,我们想要爬的数据就是在这里啦,encoding是显示resp.text的编码,也可以修改编码。

requests传递 URL 参数也是非常方便的,普及一下URL参数,是指:来定位网络上信息资源的地址,比如 
https://s.taobao.com/search?q=python 是淘宝搜索python 
https://s.taobao.com/search?q=java 就是淘宝搜索java 

大家对比一下不同之处就是改变了url参数,我们可以用字典来提供这些URL参数,详细看手册!!!

接下来的例子功能是:淘宝搜索python,把1到100页商品信息的名称、单价、地址保存到taobao_test.txt文件中 
准备工作: 
1、python开发环境 
2、re库 
3、requests库

#coding=utf-8
import re
import requests

url = 'https://s.taobao.com/search'
payload = {'q': 'python','s': '1','ie':'utf8'}  #字典传递url参数    
file = open('taobao_test.txt','w',encoding='utf-8')

for k in range(0,100):        #100次,就是100个页的商品数据

    payload ['s'] = 44*k+1   #此处改变的url参数为s,s为1时第一页,s为45是第二页,89时第三页以此类推                          
    resp = requests.get(url, params = payload)
    print(resp.url)          #打印访问的网址
    resp.encoding = 'utf-8'  #设置编码
    title = re.findall(r'"raw_title":"([^"]+)"',resp.text,re.I)  #正则保存所有raw_title的内容,这个是书名,下面是价格,地址
    price = re.findall(r'"view_price":"([^"]+)"',resp.text,re.I)    
    loc = re.findall(r'"item_loc":"([^"]+)"',resp.text,re.I)
    x = len(title)           #每一页商品的数量

    for i in range(0,x) :    #把列表的数据保存到文件中
        file.write(str(k*44+i+1)+'书名:'+title[i]+'\n'+'价格:'+price[i]+'\n'+'地址:'+loc[i]+'\n\n')


file.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

txt文件内容

代码比较短,证明requests模块的方便,代码可能有点臃肿,txt文件结果没问题

ps:第一次写技术型的博客,这是起点,希望能互相学习成长,也当记录学习笔记。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用requests库可以方便地爬取图片。通过requests.get(url)方法可以获取到图片的二进制数据,然后可以使用with open()语句将图片保存到本地。以下是一个使用requests爬取图片的示例代码: ```python import requests def download_image(url, save_path): response = requests.get(url) with open(save_path, 'wb') as f: f.write(response.content) download_image('https://example.com/image.jpg', 'image.jpg') ``` 在这个示例中,我们定义了一个`download_image`函数,该函数接收图片的URL和保存路径作为参数。使用requests.get方法获取图片的二进制数据,然后使用with open语句打开文件并将二进制数据写入文件中,从而实现图片的保存。 请注意,以上示例仅展示了如何使用requests爬取图片。在实际应用中,你可能需要结合其他技术,如解析网页获取图片URL等来完善你的爬虫。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [16-python爬虫Requests爬取海量图片](https://blog.csdn.net/bigzql/article/details/109007633)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python爬虫使用requests进行图片爬取](https://blog.csdn.net/qq_44159028/article/details/120560451)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值