费话不多说直接上代码

今天要倒霉的网站是惠农网行情大厅

import requests
from bs4 import BeautifulSoup  # 用来解析网页
import uuid
import pymysql
import time  # 导入时间隔
import random
from fake_useragent import UserAgentcookk = {'Cookie': 'sessionId=S_0KHA8RH66NM124OL; Hm_lvt_91cf34f62b9bedb16460ca36cf192f4c=1604907974,1604908122; Hm_lpvt_91cf34f62b9bedb16460ca36cf192f4c=1604912363; deviceIdRenew=1; lmvid=1e19526d8b71a2ee4a3a8ff527100d30; lmvid.sig=hV1QMMdZFpUaz_-YYY93w; deviceId=05ac3ef-5c72-405f-be76-83e97e186; hnUserTicket=d67ed8dc-df8a-45fe-85cd-1530efae920d; hnUserId=125807455'}headers = {'Host': 'www.cnhnb.com','Referer': 'https://www.cnhnb.com/hangqing/cdlist-0-0-0-0-0-1/','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',}
types = [2003191, 2003192, 2003193, 2003194, 2003195, 2003196, 2003197, 2003198, 2003200]def func():conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='zhang', charset='utf8')cur = conn.cursor()print("数据库已连接")for type in types:for i in range(19, 50):  # 爬取第一页到第3页的数据proxies = [{"https": "http://180.122.120.29:4226"}, {"https": "http://117.89.95.202:4232"},{"https": "http://113.140.184.51:4256"}]# 代理IP# proxies[random.randint(0, 2)]headers["User-Agent"] = UserAgent().randomresp = requests.get(f"https://www.cnhnb.com/hangqing/cdlist-{type}-0-0-0-0-{i}", headers=headers,proxies=proxies[random.randint(0, 2)], cookies=cookk)page_one = BeautifulSoup(resp.text, "html.parser")  # 通过html来,把请求的网页打印出来# 找到表格数据(table)dd = page_one.find('div', class_='quotation-content-list').find_all('li')if dd is None:print("要回去了")continuefor ss in dd:  # tr是每一行内容,在所有的行中,遍历每一列的内容shopDate = ss.findAll('span')[0].text.strip()# print(shopDate)productId = str(uuid.uuid1())name = ss.findAll('span')[1].text.strip()pru = ss.findAll('span')[2].text.strip()province = ss.findAll('span')[2].text.strip()[0:2]# 截取省if '内蒙' in str(pru) or '黑龙' in str(pru) or '台湾' in str(pru):province = ss.findAll('span')[2].text.strip()[0:3]# 市区# 截取区print(pru)if '自治州' in str(pru):area = str(ss.findAll('span')[2].text.split("自治州")[1])elif '自治县' in str(pru):area = str(ss.findAll('span')[2].text.split("自治县")[1])elif '地区' in str(pru):area = str(ss.findAll('span')[2].text.split("地区")[1])else:area = str(ss.findAll('span')[2].text.split("市")[1])print(area)if type == 2003191:gry = "水果"elif type == 2003192:gry = "蔬菜"elif type == 2003193:gry = "禽畜肉蛋"elif type == 2003194:gry = "水产"elif type == 2003195:gry = "农副加工"elif type == 2003196:gry = "粮油米面"elif type == 2003197:gry = "种子种苗"elif type == 2003198:gry = "苗木花草"else:gry = "中药材"price = ss.findAll('span')[3].text.strip('元/斤')updown = ss.findAll('span')[4].text.strip()unit = '元/斤'sql = "insert into price_data(id,name,area,price,unit,creatime,province,up_down,type) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)"cur.execute(sql, (productId, name, area, price, unit, shopDate, province, updown, gry))# print("sql已执行")print("第{}个页面完事了".format(i))conn.commit()time.sleep(2)  # 防止服务器蹦了,间隔一秒钟time.sleep(2)cur.close()conn.close()func()

这篇文章用到了代理IP,具体去哪里找免费的IP测试,我推荐一个网址,每天可以免费获取20分钟IP获取

看下效果

拿到数据,回家睡觉

惠农网_破译反爬虫_使用代理IP爬取数据(源码)_一蓑烟雨任平生相关推荐

  1. 爬虫之使用代理ip爬取

    爬虫之代理ip的应用 ​ 在爬虫的过程中,我们经常会遇见很多网站采取了防爬虫技术,或者说因为自己采集网站信息的强度和采集速度太大,给对方服务器带去了太多的压力. ​ 如果一直用同一个代理ip爬取这个网 ...

  2. java编写爬虫_Java怎么写网络爬虫?分分钟带你爬取,源码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 网络爬虫网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...

  3. python爬取音乐源码_手把手教你使用Python抓取QQ音乐数据(第一弹)

    [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二.需要的库] 主要涉及的库有:requests.json ...

  4. 爬虫篇——代理IP爬取备用及存储

    爬虫篇--代理IP爬取备用及存储 代码 代码 本文通过抓取免费的高匿IP代理,将其写入列表并保存为json格式文件,且将代码进行了封装,方便以后抓取数据时动态的更新handle的IP地址,从一方面避免 ...

  5. Python 爬虫实战,模拟登陆爬取数据

    Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...

  6. python爬取站_简单python爬虫练习 E站本爬取

    必备条件: 一台能上404的机子.. 过程: 由于也只是初学爬虫,个中技巧也不熟练,写的过程中的语法用法参考了很多文档和博客,我是对于当前搜索页用F12看过去..找到每个本子的地址再一层层下去最后下载 ...

  7. python爬虫代理的使用_从零开始写Python爬虫 --- 2.4 爬虫实践:代理的爬取和验证...

    爬网站的时候,由于各种原因,ip被锁了,这个时候我们就需要通过代理来突破封锁.网上有很多代理网站,付费和免费的都有,这次我们就来写一个scrapy爬虫,爬一些免费的代理下来用. 目标分析: 本次爬取了 ...

  8. python爬取数据的原理_成为Python高手必须懂的爬虫原理

    互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前. 一.爬虫是什么? 如果我们 ...

  9. mysql打印语句_大数据挖掘—(八):scrapy爬取数据保存到MySql数据库

    (大数据挖掘-(七):读懂MySql数据库操作)(大数据挖掘神器--scrapy spider爬虫框架(五):解析多层网页) 通过往期的文章分享,我们了解了如何爬取想要的数据到Items中,也了解了如 ...

  10. PYTHON爬虫神站——curl.trillworks 爬取数据只需两步!

    前不久作者因为需要爬取一些建筑类数据 于是又又又准备苦哈哈的打开百度搜索"如何爬取XX",然后看html,找到关键点再挨个循环访问.....以下省略. 但这次 这款朋友推荐网站拯救 ...

最新文章

  1. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(设置图例位置、移除图例)实战
  2. 《JavaScript设计模式与开发实践》阅读摘要
  3. javascript获取asp.net服务器端控件的值(2009-10-31 15:24:26)转载标签:杂谈 分类:技术分类
  4. Linux 下 微擎 的安装使用
  5. python有哪些常用的库
  6. 【活动(广州)】MonkeyFest2018 微软最有价值专家讲座
  7. 利用python转换图片格式
  8. BZOJ4448:[SCO2015]情报传递
  9. 怎么退出mysql_如何安全地关闭MySQL
  10. 退休前后,工资差距有多大?
  11. 八个有价值的消费者心理
  12. 智能存储 | 版权保护解决方案
  13. Operand of null-aware operation ‘!‘ has type ‘SchedulerBinding‘ which excludes null.
  14. HM笔记_1_下载调试
  15. 最新MTK平台芯片简介
  16. 2020年 第十一届蓝桥杯参赛历程总结
  17. Histograms of Oriented Gradients (HOG)理解和源码
  18. AI视觉检测,助力工业生产实现智能化升级
  19. 淡泊以明智,宁静以致远
  20. Java中List和Array转换

热门文章

  1. 前端JSON格式化显示
  2. xctf攻防世界 REVERSE 高手进阶区 re2-cpp-is-awesome
  3. Deepin、统信UOS等Linux系统连接Windows网络邻居的共享文件夹的方法
  4. C++的35个技巧阅读笔记(五)
  5. 计算机ip本地连接,电脑ip地址设置:本地连接ip设置方法
  6. php草莓派,甜品控的减脂早餐,这样做低卡又裹腹,草莓派香蕉派,好吃分享了...
  7. Sematic UI框架的学习-button样式(1)
  8. asp.net开发wap程序必备:识别来访手机品牌型号(转)
  9. Ubuntu20.04 添加打印机
  10. word输入对号以及带框的对号