Python爬虫——4.6使用requests和正则表达式、随机代理爬取淘宝网商品信息

# coding:utf-8
'''
使用requests模块,使用代理,进行淘宝网商品信息的爬取
'''
# 引入需要的模块
import requests
import random
import re
from lxml import etree

# 定义免费代理列表
proxy_list = [{"http": "116.8.83.3:8118"}, {"http": "116.8.83.3:8118"},
              {"http": "113.89.59.161:8118"}, {"http": "113.67.183.196:8118"},
              {"http": "180.155.135.224:31425"}, {"http": "123.161.153.238:22593"}]
# 定义访问路由
url = 'https://uland.taobao.com/sem/tbsearch?refpid=mm_26632360_8858797_29866178&keyword=%E5%A5%B3%E8%A3%85&clk1=51ae9dffa6be64388c59f2c5c20274c7&upsid=51ae9dffa6be64388c59f2c5c20274c7'
# 设置请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}
# 发送请求
response = requests.get(url, headers=headers, proxies=random.choice(proxy_list), verify=False)
content = response.text

# 图片名称的获取
reg_name = r'<span class="title" title=".*">(.*?)</span>'
pattern_name = re.compile(reg_name)
titles_list = pattern_name.findall(content)
titles = []
for title in titles_list:
    titles.append(title)
print "商品名称爬取结束"
# 图片的获取
reg_name = r'<img data-ks-lazyload="(.*?)" s'
pattern_name = re.compile(reg_name)
imgs_list = pattern_name.findall(content)
imgs = []
# 修改连接
for i in range(0, len(imgs_list) - 5):
    imgs_list[i] = "https:" + imgs_list[i]
# 获取图片的url,进行第二次爬取

i = 1
for img in imgs_list:
    filename = str(i) + '_' + img[-20:]
f = open('tb_img/%s' % filename, 'wb')
url = img
response = requests.get(url, verify=False)
f.write(response.content)
f.close()
i += 1

print "图片爬取结束"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值