python爬虫
文章平均质量分 63
MengDiLI
python初级码农
展开
-
undetected_chromedriver解决网页被检测
opts = ChromeOptions() opts . add_argument(f'--proxy-server=socks5://127.0.0.1:9050') driver = Chrome(options = opts) driver . get('目标网址')原创 2023-06-15 09:57:16 · 9367 阅读 · 3 评论 -
不逆向解决5s盾之cloudscraper
经常写爬虫的同学,肯定知道 Cloud Flare 的五秒盾。当你没有使用正常的浏览器访问网站的时候,它会返回如下这段文字:Please allow up to 5 seconds… 即使你把 Headers 带完整,使用代理 IP,也会被它发现。原创 2023-06-15 09:52:39 · 4541 阅读 · 0 评论 -
某网站指纹反爬处理
指纹技术就是通过不同的设备和客户端在参数上的微妙差异来识别用户。本来按照规范, 这些值都是应该任意选取的,但是,现实世界中,服务端反而对不同值采取了区别对待。指纹技术 可以说应用到了 OSI 网络模型中所有可能的层,基于 HTTP header 顺序的指纹工作在第七层应用层, SSL/TLS 指纹工作在传输层和应用层之间,TCP 指纹在第四层传输层。而在 TCP 之下的 IP 层和物理 层,因为建立的不是端到端的链路,所以只能收集上一跳的指纹,没有任何意义。原创 2023-06-14 18:06:08 · 1901 阅读 · 0 评论 -
某网站cookie反爬记录
最近做城投项目时候遇到一个问题,就是一个代码写好不动,我只操作页面,运行出来的结果却是页面上显示的内容。这就导致了我不能按自己的需求抓取指定模块的内容。原创 2023-06-14 17:52:39 · 541 阅读 · 0 评论 -
python 批量移动文件
import osdef remove_file(): target_dir= r'./docx文件新' if not os.path.exists(target_dir): os.makedirs(target_dir) old_dir = os.getcwd() + '/docx文件旧' for root, dirs, files in os.walk(old_dir): for file in files: #原创 2021-03-05 16:37:20 · 270 阅读 · 0 评论 -
使用Beautifulsoup解析网页遇到的问题
今天遇到一个网页,按往常的老办法soup = BeautifulSoup(content, 'lxml')打印soup发现少了很多数据,刚开始还以为反爬,后来经过验证不是。、那么就是解析问题,我换成了soup = BeautifulSoup(content, 'xml')打印发现我想要的那块成功出现了,但是对比整个网页发现,其实还是有一些没有显示出来的,不管他,时间紧任务重,得过且过。后来进入详情页,发现又显示不全了。中间试了xpath等各种解析手段,还是显示不出来。最后还是继续使用bs4原创 2020-07-07 11:08:56 · 2090 阅读 · 1 评论 -
关于python爬虫post请求
今天搞爬虫代码,明明能找到post请求网址,以及请求需要带的参数,但是写到代码里就是不行运行结果却出了问题后面找到了问题只需要将data数据json格式化一下结果完美收工原创 2020-06-05 18:06:42 · 645 阅读 · 0 评论 -
python 爬取doc文档
doc_href='https://resource.lzbank.com:18106/cportalFileServer/files//site/doc/pc/20201/12021/goods/20200521172408609syj8FsHJ.doc'conten=requests.get(doc_href).content with open('D:\爬取doc\doc\\1.doc','wb')as f: f.write(conten)另外,python没法直接处理doc原创 2020-05-26 14:42:06 · 1806 阅读 · 0 评论 -
python代码中写sql语句的模糊查询
db = pymysql.connect(host="127.0.0.1", user="root", password="", db="demo", port=3306,charset='utf8')cur = db.cursor(cursor=pymysql.cursors.DictCursor)cur.execute('select * from demo_table where cp_name like "%%%s%%" and yh_name="云南红塔银行"' % cp_name)res原创 2020-05-22 11:04:30 · 1644 阅读 · 0 评论 -
python使用Beautiful定位时,标签内的属性不是正经属性的定位方法
今天做爬虫定位标签时,遇到了这样一个问题我需要通过data-region_id这个属性值来跟他的上级区域对应。当我使用它定位时很明显,这个属性值不是正经属性值,不能像id,class这些用法一样。后来想想,虽然它不是正经属性值,但它确实是属性值,只不过不正经。那就用对待不正经的属性值的方法使用title=soup.find('div',id='title')area= soup.f...原创 2020-01-07 16:11:38 · 279 阅读 · 0 评论 -
天猫商品详情爬取(以及评论信息)
今天试了下爬取天猫,没系统写,只是看了下每页各种数据怎么获取。其中商品列表页出现了点问题,记录一下。如果直接用从列表页拿到的链接请求的话,最后得出来的结果是没有价格信息的,其他到没注意最后各种试,发现要从页面中取出另一个js链接,这个链接返回的数据是有价格信息的import requestsurl='https://mdskip.taobao.com/core/initItem...原创 2020-01-05 11:54:35 · 5651 阅读 · 8 评论 -
大众点评文字反爬破解
我刚开始就是这么干的,但是最后发现,这个网页渲染不是用了三四个字体文件吗,结果在不同文件里,‘e605’代表的不只是我,一个文件里‘e605’代表‘我’,可能另一个文件里会是‘你’,‘他’。前面写了58同城的字体反爬,这几天又跟大众点评的文字反爬杠上了,多方查找,各种踩坑,好多文章是之前的解决办法,大众已经更改了反爬方式,好在磕磕绊绊终于是搞定了。好了,这就算初步完成了。这样一来,我们可以先根据其中一个文件,手动写出字体与编码的对应关系,然后其他文件来了,我们就可以根据对比x,y,on值推出它对应的字体。原创 2020-01-04 17:47:52 · 1579 阅读 · 0 评论 -
python使用replace做多字符替换
如果需要替换的字符比较少,我们可以直接写出来,但是多的话,就要用for循环了原创 2020-01-03 15:59:29 · 8747 阅读 · 4 评论 -
格式化headers,正则替换key:value到‘key’:‘value‘,
选择regex,将(.*?):(.*)替换为'$1':'$2',之后可以ctrl+alt+l,进行代码美化原创 2020-12-16 10:05:35 · 936 阅读 · 0 评论 -
python爬虫进程池,线程池,异步,的使用
也就是说本文使用的多进程,多线程,异步爬虫,适合没有顺序要求的爬取需求,比如你爬取楼盘网,哪个楼盘信息先入库其实问题不大吧。本文章爬取的小说放在了一个文件里,所以使用多进程,多线程,异步,会导致文章顺序不对。简直可以用恐怖形容,当然这里我们没有规定最大请求数,而进程和线程我们都限制了10条,但是异步请求的速度还是真的可观。任务量多的时候可以考虑使用,因为任务多,值得我们搞一些稳定的代理,也就不担心速度快被封了。但是打印顺序是乱的,其实很好理解,有的进程跑得慢,有的进程跑得快。原创 2019-12-27 09:59:22 · 1105 阅读 · 0 评论 -
python爬虫破解简单的字体反爬
这两天一直在看字体反爬方面的文章,现在难一点的还没摸清怎么搞,但是58的品牌公寓的字体反爬相对简单一些,已经自己做出来了,特此记下来,也可以帮刚在这方面入门的小伙伴更快熟悉起来。整体代码我会在文末发出来。话不多说,开始正题打开58公寓的页面,链接点这里页面是这样的打开调试可以看到源码是乱码的用代码跑出来之后,是这样的很明显的,出现了字体反爬。一般这种反爬,网页文件里是会有他们自...原创 2019-12-25 17:50:34 · 938 阅读 · 0 评论 -
python爬虫重试模块
from retrying import retry@ retry(stop_max_attempt_number = 10) #让被装饰的函数反复执行10次,10次全部报错才会报错, 中间有一次正常就继续往下走def get_url(): pass...原创 2019-12-06 11:38:59 · 215 阅读 · 1 评论 -
使用selenium运行chrom无头浏览器(不显示界面)
from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionschrome_options = Options()chrome_options.add_argument('--headless')driver = webdriver.Chrome(chrome_options = ch...原创 2019-11-20 14:30:30 · 4269 阅读 · 0 评论 -
scrapy 使用
spider脚本(对应我的anjuke_spider.py):1.不需要从列表页带数据,也就是说只需要得到列表页列表url时:(列表页如下)# -*- coding: utf-8 -*-import scrapyfrom anjuke.items import AnjukeItemimport reclass AnjukeSpiderSpider(scrapy.Spider):...原创 2019-09-15 15:13:37 · 184 阅读 · 0 评论 -
爬取51job准备练习数据可视化
import requestsfrom bs4 import BeautifulSoupfrom fake_useragent import UserAgentimport randomimport timefrom lxml import etreefrom pymysql import *def get_list_url(url): ua = UserAgent() ...原创 2019-09-22 13:46:58 · 1099 阅读 · 2 评论 -
selenium获取cookie并添加、requests处理cookie
import datetimefrom pymysql import *from bs4 import BeautifulSoupimport requestsimport jsonimport zlibfrom urllib import requestimport sysimport randomfrom selenium import webdriverimport r...原创 2019-09-19 11:20:14 · 1176 阅读 · 0 评论 -
爬取一些成语
import requestsimport jsonimport refrom fake_useragent import UserAgentheaders= {'User-Agent':str(UserAgent().chrome)}for page in range(0,43381,30): url='https://sp0.baidu.com/8aQDcjqpAAV3otq...原创 2019-09-29 15:21:44 · 458 阅读 · 0 评论 -
scrapy_redis分布式
想做一下高大上的scrapy_redis爬虫程序,又觉得我这种水货做不来,后来各种查教程,试验,还算做出来一个像分布式的东西,不过还是记录一下,反正开几个终端模拟分布式,数据库里的数据确实没重复的,也能凑乎着用吧首先搭建scrapy,额。。反正就是先别管啥分布式,做一个scrapy爬虫出来再说。当你的scrapy爬虫能运行成功,数据库里能有数据的时候,改成分布式,settings.py文件最...原创 2019-10-10 17:30:57 · 151 阅读 · 0 评论