目标

爬取url:https://detail.zol.com.cn/cell_phone_advSearch/subcate57_1_s8975_1_1__2.html
数据需求:
抓取主流品牌的所有手机机型和相关参数。这应该是我写过的第一个正式的爬虫。

方法论

不需要登陆。没有加密参数。只需要cookie和ua就能获取。通过selenium获取cookie,通过分页获取每个手机的url【注:详情页的url需要手动拼接】,再获取详情页的参数。
提前准备好要抓取的列表。包括品牌、url、页数。如:
brand,url,pagenum
华为,https://detail.zol.com.cn/cell_phone_advSearch/subcate57_1_m613_1_1__{}.html,24
vivo,https://detail.zol.com.cn/cell_phone_advSearch/subcate57_1_m1795_1_1__{}.html,15
oppo,https://detail.zol.com.cn/cell_phone_advSearch/subcate57_1_m1673_1_1__{}.html,13

代码

import csv
import json
import timeimport pandas as pd
from selenium import webdriver
import requests
from lxml import etreedef down_cookie():url = 'https://detail.zol.com.cn/'driver = webdriver.Chrome(executable_path='/Users/fangli/Downloads/chromedriver')driver.get(url)dictCookies = driver.get_cookies()  # 核心jsonCookies = json.dumps(dictCookies)print(jsonCookies)# 登录完成后将cookie保存到本地文件with open('cookies.json', 'w') as f:f.write(jsonCookies)time.sleep(3)driver.close()def get_cookie():with open('cookies.json', 'r', encoding='utf-8') as f:listCookies = json.loads(f.read())cookie = [item["name"] + "=" + item["value"] for item in listCookies]cookiestr = '; '.join(item for item in cookie)return cookiestrdef get_response(pageurl):cookie=get_cookie()headers = {"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36", "cookie": cookie}try:response = requests.get(url=pageurl, headers=headers).textreturn responseexcept:print('更换cookie')down_cookie()get_response(pageurl)def get_datail(detail_url):response = get_response(detail_url)html = etree.HTML(response)phone_name  = str(html.xpath('//h1[@class="product-model__name"]/text()')[0]).replace('参数','')with open(file='手机参数数据采集全量.csv',encoding='utf-8',mode='a') as files:for i in range(1,11):trs = html.xpath('//div[@class="detailed-parameters"]/table[{}]/tr'.format(i))for tr in trs:try:k=tr.xpath("./th/span/text() | ./th/a/text()")[0]v = str(tr.xpath('./td/span/text() | ./td/span/a/text()')[0]).replace('>','').replace(',',';')files.write('{},{},{}'.format(phone_name,k,v))files.write('\n')print(phone_name,k,v)except:pass#获取pagelist中的url
def get_pagelist(pageurl):response = get_response(pageurl)html = etree.HTML(response)result = html.xpath('//*[@id="result_box"]/div[2]/ul/li')for i in result:proname = str(i.xpath('./dl/dt/a/@id')[0]).replace('proName_','')prename = int(proname[0:4])+1detail_url = 'https://detail.zol.com.cn/{}/{}/param.shtml'.format(prename,proname)get_datail(detail_url)def get_data():df=pd.read_csv('brandlist.csv')for i in range(df.shape[0]):brand = df.iat[i,0]url = df.iat[i,1]pagenum = int(df.iat[i,2])for j in range(1,pagenum+1):pageurl = str(url).format(j)print(brand,pageurl,j)get_pagelist(pageurl)if __name__ == '__main__':get_data()

爬子第一篇:zol手机型号参数抓取相关推荐

  1. Python爬虫实战:手机APP数据抓取分析!谁说不能爬取app数据的?

    大多数手机APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,使用python抓取超级课程表里用户发的话题.主要是练习python爬取app的一些方式和技巧. 1. ...

  2. 手机HCI日志抓取教程

    手机HCI日志抓取教程 以下为主流安卓手机品牌以及iOS手机HCI日志抓取教程(亲测有效) Android HUAWEI/Honor 进入应用程序->设置->关于手机,连续点击版本,提示打 ...

  3. 使用真实手机进行burp抓取app包

    转载https://www.jianshu.com/p/e9685619885d 使用burp抓取app包 1.电脑和手机连接同一个wifi 2.使用burp生成证书 如果需要抓取HTTPS数据包需要 ...

  4. 汽车之家配置参数抓取

    一.开头 汽车之家配置参数抓取最难的部分是部分页面用JS生成的,导致部分文字抓取不出来.而且该网站会经常改动混淆方式,用正则表达式处理费时费力不说,而且会经常需要改动.因此选择用JS解析器来处理.为了 ...

  5. 爬虫教程( 3 ) --- 手机 APP 数据抓取

    1. Fiddler 设置 这是使用 fiddler 进行手机 app 的抓包,也可以使用 Charles,burpSuite 等... 电脑安装 Fiddler, 手机 和 安装 fiddler 的 ...

  6. python爬虫之app数据抓取_Python爬虫入门教程 29-100 手机APP数据抓取 pyspider

    1. 手机APP数据----写在前面 继续练习pyspider的使用,最近搜索了一些这个框架的一些使用技巧,发现文档竟然挺难理解的,不过使用起来暂时没有障碍,估摸着,要在写个5篇左右关于这个框架的教程 ...

  7. scrapy python3.8_银狐DevNet-网络运维Python初篇(四)netmiko抓取华为网络配置并存入本地...

    1.训练场景:读取excel中设备IP地址,通过Netmiko抓取设备配置,并存入本地 上一小节我们通过excel得到设备IP地址,并用Netmiko批量抓取设备配置并打印出来,真实运维场景我们需要把 ...

  8. python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...

    Python爬虫包 BeautifulSoup  递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到 ...

  9. python怎么爬虎牙_使用python爬虫框架scrapy抓取虎牙主播数据

    前言 本文利用python的scrapy框架对虎牙web端的主播.主播订阅数.主播当前观看人数等基本数据进行抓取,并将抓取到的数据以csv格数输出,以及存储到mongodb中 思路 观察虎牙网站后确认 ...

最新文章

  1. 鴻雁 Anser cygnoides
  2. dell台式机进入安全模式_华为发布首款商用台式机,商用PC市场再掀变革?
  3. python在线编译-python在线编译器的简单原理及简单实现代码
  4. 【数字信号处理】相关函数应用 ( 正弦信号 的 自相关函数 分析 | 在白噪声中检测正弦信号 )
  5. JavaScript 特有奇葩问题“字符串类型与数字类型混乱”的分析与解决,与类型转换
  6. Ambari系统架构
  7. 组合数学 —— 组合数取模 —— 逆元与递推打表
  8. 计算(a+b)*c的值(信息学奥赛一本通-T1007)
  9. oracle 转 mysql 乱码问题吗_Oracle数据传输MySQL中文编码问题
  10. swagger 扫描java文档_使用Javadocs生成Swagger文档
  11. windows Server 2008+iis 7.5 部署应用程序
  12. Java Applet Reflection Type Confusion Remote Code Execution
  13. 好用的跨平台开源截图工具推荐--flameshot
  14. 安卓简单的通用文本编辑器介绍
  15. SONY无线PS2遥控手柄与stm32单片机通信
  16. mysql语句大全文档_mysql语句大全免费
  17. 付费学习,花钱比意志力靠谱
  18. Java编程思想学习笔记4 - 序列化技术
  19. 树的递归遍历与递归序
  20. 企业现金流和资金链区别

热门文章

  1. 国内外有哪些自然语言处理的团队?
  2. 互联网广告之功能讲解
  3. KPI和OKR的理解
  4. VennDiagram包画韦恩图
  5. 艾永亮:宠物医院风云,当商人穿起了白大褂
  6. 关于支付宝合作者身份id与与卖家支付宝账号
  7. vue中使用ckeditor,支持wps,word,网页粘贴
  8. Python代码部署的三种加密方案:代码混淆、代码编译、代码打包
  9. 用 Python+openpose 实现抖音尬舞机 1
  10. HNUCM2020年春季ACM集训队选拔赛(2)题解