真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python如何通過正則庫爬取淘寶商品信息-創(chuàng)新互聯(lián)

小編給大家分享一下Python如何通過正則庫爬取淘寶商品信息,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)是專業(yè)的白云鄂網(wǎng)站建設(shè)公司,白云鄂接單;提供成都網(wǎng)站制作、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行白云鄂網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

使用正則庫爬取淘寶商品的商品信息,首先我們需要確定想要爬取的對象

我們在淘寶里搜索“python”,出來的結(jié)果

Python如何通過正則庫爬取淘寶商品信息

從url連接中可以得到搜索商品的關(guān)鍵字是“q=”,所以我們要用的起始url為:https://s.taobao.com/search?q=python

然后翻頁,經(jīng)過對比發(fā)現(xiàn),翻頁后,變化的關(guān)鍵字是s,每次翻頁,s便以44的倍數(shù)增長(可以數(shù)一下每頁顯示的商品數(shù)量,剛好是44)
所以可以根據(jù)關(guān)鍵字“s=”,來設(shè)置爬取的深度(爬取多少頁)

右鍵查看源碼,商品名稱可能的關(guān)鍵字是“title”和“raw_title”,進(jìn)一步多看幾個商品的名稱,發(fā)現(xiàn)選取“raw_title”比較合適;商品價格自然就是“view_price”(通過比對淘寶商品展示頁面);所以商品名稱和商品價格分別是以"raw_title":"名稱"和"view_price":"價格",這樣的鍵/值對的形式展示的。

# coding:utf-8

import requests
import re

goods = '水杯'
url = 'https://s.taobao.com/search?q=' + goods

r = requests.get(url=url, timeout=10)
html = r.text

tlist = re.findall(r'\"raw_title\"\:\".*?\"', html) # 正則提取商品名稱
plist = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html) # 正則提示商品價格

print(tlist)
print(plist)
print(type(plist)) # 正則表達(dá)式提取出的商品名稱和商品價格都是以列表形式存儲數(shù)據(jù)的

利用for循環(huán),把每個商品的名稱和價格組成一個列表,然后把這寫列表再追加到一個大列表中:

goodlist = []
for i in range(len(tlist)):
  title = eval(tlist[i].split(':')[1]) # eval()函數(shù)簡單說就是用于去掉字符串的引號
  price = eval(plist[i].split(':')[1])
  goodlist.append([title, price]) # 把每個商品的名稱和價格組成一個小列表,然后把所有商品組成的列表追加到一個大列表中
  print(goodlist)

大概的思路就是這樣的。

def get_html(url):
  """獲取源碼html"""
  try:
    r = requests.get(url=url, timeout=10)
    r.encoding = r.apparent_encoding
    return r.text
  except:
    print("獲取失敗")
def get_data(html, goodlist):
  """使用re庫解析商品名稱和價格
  tlist:商品名稱列表
  plist:商品價格列表"""
  tlist = re.findall(r'\"raw_title\"\:\".*?\"', html)
  plist = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html)
  for i in range(len(tlist)):
    title = eval(tlist[i].split(':')[1]) # eval()函數(shù)簡單說就是用于去掉字符串的引號
    price = eval(plist[i].split(':')[1])
    goodlist.append([title, price])


def write_data(list, num):
  # with open('E:/Crawler/case/taob2.txt', 'a') as data:
  #  print(list, file=data)
  for i in range(num): # num控制把爬取到的商品寫進(jìn)多少到文本中
    u = list[i]
    with open('E:/Crawler/case/taob.txt', 'a') as data:
      print(u, file=data)


def main():
  goods = '水杯'
  depth = 3  # 定義爬取深度,即翻頁處理
  start_url = 'https://s.taobao.com/search?q=' + goods
  infoList = []
  for i in range(depth):
    try:
      url = start_url + '&s=' + str(44 * i) # 因為淘寶顯示每頁44個商品,第一頁i=0,一次遞增
      html = get_html(url)
      get_data(html, infoList)
    except:
      continue
  write_data(infoList, len(infoList))
if __name__ == '__main__':
  main()

以上是“Python如何通過正則庫爬取淘寶商品信息”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


本文名稱:Python如何通過正則庫爬取淘寶商品信息-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://weahome.cn/article/ccosde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部