二战风云攻略,新区103服,为什么练兵,一直不行,都打勾了,一直和卡的一

该书不再提示订阅信息,自动订阅下一章。
扫一扫下载客户端
第一章 刺客列传2004
上下翻页/左右翻页
扫描二维码分享到微信
是否同步云端进度继续阅读?
fdsafdsatg好感人好的羊肉汤而后有男人核桃仁和特惠天热义和团任务后突然他
输入您的反馈内容(必填)
邮箱或手机号
正在加载中...
您将从开始购买,请选择批量购买的章节数电脑2有2个用户1个种了木马另外一个也会种吗
电脑2有2个用户1个种了木马另外一个也会种吗,高手指点下谢谢
09-11-15 &匿名提问
电脑反应慢,其根本原因,是你的系统运行的程序(包括病毒,特别是病毒最耗资源)超过你硬件的所能负荷而造成的所以解决电脑反应慢的,就有两个方面:一,提高硬件配置;二,减少程序运行在不提高硬件配置的情况下,优化你的电脑吧: 1、在我的电脑窗口,右击要清理的盘符—“属性”—“清理磁盘”--勾选要删除的文件--确定--是。2、右键浏览器e——属性——点2个删除1个清除(都要逐一确定)——确定 。 3、把C:\WINDOWS\Prefetch(预读文件)把里面的文件全部删除4、用优化大师或超级兔子清理注册表和垃圾文件。 5、“开始”——运行中输入msconfig——确定——启动——除了输入法ctfmon以外的勾全去掉。 6、右键我的电脑”——属性——点高级——点启动和故障恢复中的设置——去掉所有的勾——写入调试信息选择“无”——确定——点高级下面错误报告——点禁用——2次确定。7、“开始”..打开控制面板中的文件夹选项..点查看..点去末项自动搜索文件夹前面的勾..确定。 8、右键我的电脑——属性——硬件——设备管理器——双击IDE控制器——次要通道——高级设置——传送模式都选DMA——设备类型选无——确定——主要通道也同样设置——确定。 9、右键C盘进行磁盘清理和其它选项中的系统还原清理。 10、删除不用的程序软件。 11、整理磁盘碎片-开始-所有程序-附件-系统工具--磁盘碎片整理程序-选定C-分析-碎片整理。 12、禁用闲置的IDE通道 右键点击“我的电脑-属性”,然后点击“硬件”接着点击“设备管理器”,在其中打开“IDE ATA/PATA控制器”然后分别进入主要和次要IDE通道,选择“高级设置”,在这里找到“当前传送模式”为“不适用”的一项,将此项的“设备类型”设置为“无”。 13、优化视觉效果 右键单击“我的电脑”--“属性”—“高级”,在“性能”栏中,点击“设置”--“视觉效果”,调整为最佳性能,或只保留一些必要的项目。 14、启动和故障恢复 &我的电脑&--&属性&--&高级&--&启动和故障修复&中点击“设置”,去掉&将事件写入系统日志&,&发送管理警报&,&自动重新启动&选项;将&写入调试信息&设置为&无&;点击&编辑&,在弹出记事本文件中: [Operating Systems] timeout=30 把 30 秒改为 0 秒。 15、禁用错误报告 我的电脑-属性-高级-点&错误报告&,点选&禁用错误汇报&,勾选&但在发生严重错误时通知我”--确定. 16、设置系统还原 单击“开始”--“所有程序”--“附件”--“系统工具”—“系统还原”,在系统还原界面,去掉“在所有驱动器上关闭系统工程还原”前边的勾,在“可用的驱动器”区中,选系统盘所在的分区,单击“设置”进入“系统还原设置”窗口,将“要使用的磁盘空间”调到5%或更小,“确定”返回,按上述方法将其它分区设禁用。 (建议不要关闭,关闭只能加快系统运行速度,但对电脑没什么好处)17、关闭自动更新 关闭自动更新具体操作为:右键单击“我的电脑”--“属性”--“自动更新”,在“通知设置”一栏选择“关闭自动更新。选出“我将手动更新计算机”一项。 18、关闭远程桌面 右键单击我的电脑-属性-远程,把“远程桌面”里的“允许用户远程连接到这台计算机”勾去掉。 19、禁用休眠功能 单击“开始”--“控制面板”--“电源管理”--“休眠”,将“启用休眠”前的勾去掉。 20、关闭“Internet时间同步”功能 依次单击“开始”--“控制面板”--“日期、时间、语言和区域选项”,然后单击“Internet时间”,取消“自动与Internet时间服务同步”前的勾。 21、关闭磁盘索引打开我的电脑 ,右击驱动器,选“属性”,取消“使用索引以便快速查找文件”前面的勾。 22、取消XP自带的压缩文件夹工具:点击开始-运行,敲入: regsvr32 /u zipfldr.dll 。然后回车即可 23、关闭华生医生Dr.Watson 单击“开始”--“运行”--输入“drwtsn32”命令,打开华生医生Dr.Watson 窗口,只保留“转储全部线程上下文”选项,取消其选项前边勾 24、更改临时文件的位置 ,改到非系统盘更改临时文件的存放位置的方法是,右键“我的电脑”,“属性”对话框中,“高级”中的“环境变量”设置。“变量”temp和tmp全部设置为其他盘中,选择“编辑”,然后更改一下路径就可以了。只更改Local Settings\Temp前面的变量就行了,更改为一个盘符的卷标就可以。25、关闭&休眠支持&:因为休眠功能占的硬碟空间蛮大的, 所以关闭比较好, 控制面板-&电源选项-&休眠(不要打勾) 26、设置虚拟内存:虚拟内存最小值物理内存1.5—2倍,最大值为物理内存的2—3倍。1、右击我的电脑—属性--高级--性能设置--高级--虚拟内存更改--在驱动器列表中选中你设有页面文件的盘符(D)--选“无页面文件”--“设置”,将这个盘的页面文件设置删除; 2、在驱动器列表中选中你要设有页面文件的盘符(C)--选“自定义大小”--在“初始大小”和“最大值”中输入数值--“设置”--“确定”27、修改注册表 (1)加快开机及关机速度 1:缩短等待时间 :在[开始]--&[运行]--&键入[Regedit]--&①、[HKEY_CURRENT_USER]--&[Control Panel]--&[Desktop],将字符串值[Hung]要先删除,后再设置才行。 AutoEndTasks 值设为 1。 ( 原设定值:0 )[AppTimeout]的数值数据更改为[200],[WaitToKillAppTimeout]的数值数据更改为1000.②、[HKEY_LOCAL_MACHINE]--&[System]--&[CurrentControlSet]--&[Control],[HungAppTimeout]的数值数据更改为[200],[WaitToKillServiceTimeout]的数值数据更改1000. (2)加快预读能力改善开机速度 [HKEY_LOCAL_MACHINE]--&[SYSTEM]--&[CurrentControlSet]--&[Control]--&[SessionManager]--&[MemoryManagement][PrefetchParameters]右边窗口,将[EnablePrefetcher]的数值数据如下更改,如使用PIII 800MHz CPU以上的建议将数值数据更改为4或5 28、关闭没用的服务开始-控制面板-管理工具-服务COM+ Event SystemDCOM Server Process LauncherDHCPError Reporting ServiceEvent LogIPSEC ServicesLogical Disk ManagerNetwork ConnectionsPlug and PlayRemote Access Connection ManagerRemote Procedure Call (RPC)Security Accounts ManagerTelephonyWorkstation这几个服务设为自动,其它的全部设为手动(禁用的就不用去管他)29、优化BIOS设置。 (其中一种BIOS)?开启计算机或重新启动计算机后,按下“Del”键就可以进入BIOS的设置界面①、进BIOS将默认设置改为优化设置。 在打开的界面中找到LOAD OPRIMUM SETTINGS(载入主板BIOS出厂设置),这是出厂的BIOS的优化置。 有的是LOAD HIGH PERFORMANCE DEFAULTS(高性能缺省值),此选项用来载入BIOS优化设置。 用键盘方向键选定优化值后回车,按Y,回车②、关闭软驱。 BIOS FEATURES SETUP,选定,回车打开BIOS FEATURES SETUP界面,将D rive A : 后边的1.44m 3.5in,改为 None(关闭),按Esc键返回主界面③、关闭开机软驱检测功能。 Advanced Bios Features(高级BIOS参数设置)按回车,在界面中将“Boot Up Floppy Seek(开机软驱检测)”设置为“Disabled”, 在界面中将“Quick Power On Self Test”(快速开机自检功能)项,设置为“Enabled”(允许) 界面中将First Boot Device 设为HDD-O(硬盘启动)最后按F10,Y,回车
请登录后再发表评论!
将中木马的帐号设置密码,用没有种木马的帐号运行电脑,木马不会运行。
请登录后再发表评论!
每隔一个多小时会自动重启?? 考虑病毒的可能性较大 , 请查杀冲击波另外,请查看有无文件冲突,看看防火墙或运行的软件有什么异常.还有,请尝试这样:点右键--我的电脑--属性--高级--启动和故障恢复--设置--将&系统失败--自动重新启动& 前面的勾去掉,确定.
电脑自动从启应该考虑的问题如下: 一、软件方面 1.病毒 “冲击波”病毒发作时还会提示系统将在60秒后自动启动。 木马程序从远程控制你计算机的一切活动,包括让你的计算机重新启动。 清除病毒,木马,或重装系统。 2.系统文件损坏 系统文件被破坏,如Win2K下的KERNEL32.DLL,Win98 FONTS目录下面的字体等系统运行时基本的文件被破坏,系统在启动时会因此无法完成初始化而强迫重新启动。 解决方法:覆盖安装或重新安装。 3.定时软件或计划任务软件起作用 如果你在“计划任务栏”里设置了重新启动或加载某些工作程序时,当定时时刻到来时,计算机也会再次启动。对于这种情况,我们可以打开“启动”项,检查里面有没有自己不熟悉的执行文件或其他定时工作程序,将其屏蔽后再开机检查。当然,我们也可以在“运行”里面直接输入“Msconfig”命令选择启动项。 二、硬件方面 1.机箱电源功率不足、直流输出不纯、动态反应迟钝。 用户或装机商往往不重视电源,采用价格便宜的电源,因此是引起系统自动重启的最大嫌疑之一。 ①电源输出功率不足,当运行大型的3D游戏等占用CPU资源较大的软件时,CPU需要大功率供电时,电源功率不够而超载引起电源保护,停止输出。电源停止输出后,负载减轻,此时电源再次启动。由于保护/恢复的时间很短,所以给我们的表现就是主机自动重启。 ②电源直流输出不纯,数字电路要求纯直流供电,当电源的直流输出中谐波含量过大,就会导致数字电路工作出错,表现是经常性的死机或重启。 ③CPU的工作负载是动态的,对电流的要求也是动态的,而且要求动态反应速度迅速。有些品质差的电源动态反应时间长,也会导致经常性的死机或重启。 ④更新设备(高端显卡/大硬盘/视频卡),增加设备(刻录机/硬盘)后,功率超出原配电源的额定输出功率,就会导致经常性的死机或重启。 解决方法:现换高质量大功率计算机电源。 2.内存热稳定性不良、芯片损坏或者设置错误 内存出现问题导致系统重启致系统重启的几率相对较大。 ①内存热稳定性不良,开机可以正常工作,当内存温度升高到一定温度,就不能正常工作,导致死机或重启。 ②内存芯片轻微损坏时,开机可以通过自检(设置快速启动不全面检测内存),也可以进入正常的桌面进行正常操作,当运行一些I/O吞吐量大的软件(媒体播放、游戏、平面/3D绘图)时就会重启或死机。 解决办法:更换内存。 ③把内存的CAS值设置得太小也会导致内存不稳定,造成系统自动重启。一般最好采用BIOS的缺省设置,不要自己改动。 3.CPU的温度过高或者缓存损坏 ①CPU温度过高常常会引起保护性自动重启。温度过高的原因基本是由于机箱、CPU散热不良,CPU散热不良的原因有:散热器的材质导热率低,散热器与CPU接触面之间有异物(多为质保帖),风扇转速低,风扇和散热器积尘太多等等。还有P2/P3主板CPU下面的测温探头损坏或P4 CPU内部的测温电路损坏,主板上的BIOS有BUG在某一特殊条件下测温不准,CMOS中设置的CPU保护温度过低等等也会引起保护性重启。 ②CPU内部的一、二级缓存损坏是CPU常见的故障。损坏程度轻的,还是可以启动,可以进入正常的桌面进行正常操作,当运行一些I/O吞吐量大的软件(媒体播放、游戏、平面/3D绘图)时就会重启或死机。 解决办法:在CMOS中屏蔽二级缓存(L2)或一级缓存(L1),或更换CPU排除。 4.AGP显卡、PCI卡(网卡、猫)引起的自动重启 ①外接卡做工不标准或品质不良,引发AGP/PCI总线的RESET信号误动作导致系统重启。 ②还有显卡、网卡松动引起系统重启的事例。 5. 并口、串口、USB接口接入有故障或不兼容的外部设备时自动重启 ①外设有故障或不兼容,比如打印机的并口损坏,某一脚对地短路,USB设备损坏对地短路,针脚定义、信号电平不兼容等等。 ②热插拔外部设备时,抖动过大,引起信号或电源瞬间短路。 6.光驱内部电路或芯片损坏 光驱损坏,大部分表现是不能读盘/刻盘。也有因为内部电路或芯片损坏导致主机在工作过程中突然重启。光驱本身的设计不良,FireWare有Bug。也会在读取光盘时引起重启。 7.机箱前面板RESET开关问题 机箱前面板RESET键实际是一个常开开关,主板上的RESET信号是+5V电平信号,连接到RESET开关。当开关闭合的瞬间,+5V电平对地导通,信号电平降为0V,触发系统复位重启,RESET开关回到常开位置,此时RESET信号恢复到+5V电平。如果RESET键损坏,开关始终处于闭合位置,RESET信号一直是0V,系统就无法加电自检。当RESET开关弹性减弱,按钮按下去不易弹起时,就会出现开关稍有振动就易于闭合。从而导致系统复位重启。 解决办法:更换RESET开关。 还有机箱内的RESET开关引线短路,导致主机自动重启。 8. 主板故障 主板导致自动重启的事例很少见。一般是与RESET相关的电路有故障;插座、插槽有虚焊,接触不良;个别芯片、电容等元件损害。 三、其他原因 1.市电电压不稳 ①计算机的开关电源工作电压范围一般为170V-240V,当市电电压低于170V时,计算机就会自动重启或关机。 解决方法:加稳压器(不是UPS)或130-260V的宽幅开关电源。 ②电脑和空调、冰箱等大功耗电器共用一个插线板的话,在这些电器启动的时候,供给电脑的电压就会受到很大的影响,往往就表现为系统重启。 解决办法就是把他们的供电线路分开。 2.强磁干扰 不要小看电磁干扰,许多时候我们的电脑死机和重启也是因为干扰造成的,这些干扰既有来自机箱内部CPU风扇、机箱风扇、显卡风扇、显卡、主板、硬盘的干扰,也有来自外部的动力线,变频空调甚至汽车等大型设备的干扰。如果我们主机的搞干扰性能差或屏蔽不良,就会出现主机意外重启或频繁死机的现象。 3、交流供电线路接错 有的用户把供电线的零线直接接地(不走电度表的零线),导致自动重启,原因是从地线引入干扰信号。 4.插排或电源插座的质量差,接触不良。 电源插座在使用一段时间后,簧片的弹性慢慢丧失,导致插头和簧片之间接触不良、电阻不断变化,电流随之起伏,系统自然会很不稳定,一旦电流达不到系统运行的最低要求,电脑就重启了。解决办法,购买质量过关的好插座。 5. 积尘太多导致主板RESET线路短路引起自动重启。 四、部分实例 1. CPU二级缓存坏的实例 一台几年前配置的兼容机:K6-2 200MHz CPU,采用VX-Pro+芯片组的主板,两根16MB 72线EDO内存, Windows 98操作系统。在出现蓝天白云画面后自动重启,安全模式同样无法进入,只能进入MS-DOS模式。笔者猜想由于内存条质量问题导致电脑重启的可能性较大,所以首先更换同型号内存条测试,故障依旧。再更换电源仍无法解决问题。排除到最后只剩下主板、CPU和显卡,试过显卡没有问题后,苦于找不到能安装K6-2 200MHz CPU的旧主板只能作罢。 当时也怀疑过BIOS设置可能有误,试过恢复到缺省值,也未能解决问题。过了几天,再次摆弄电脑时,无意进入BIOS并将CPU Internal Cache一项设为Disable,保存退出后重启,系统竟然可以启动了!由此估计应当是CPU的缓存有问题,于是再将缓存设置为打开状态并启动电脑,果然系统又不能正常启动了。由于将缓存关闭后大幅度降低了CPU的性能,所以Windows 98在启动和运行程序时比以往慢了许多,最后换了一块CPU才算解决问题 2. 电源故障的实例 笔者上班的地方计算机每天都要开着(因为上网的人多),十天半月不关机是常事。在如此高的工作强度下,硬件设备的故障率也很高。 故障现象:两台兼容机,一台CPU为Athlon XP 1700+,一台CPU为P4 1.7GHz,主机电源均为世纪之星电源。当计算机处于满负荷状态运行一段时间后(此时CPU使用率保持在100%,硬盘也在大量读写数据),经常性地自动重启。其中一台在挂接一块60GB硬盘和一块80GB硬盘时,出现供电不足的现象。 故障分析处理:由于这两台计算机平时用于文档编辑、上网等一般工作时正常,只有进行大量计算时才出问题。开始怀疑是CPU温度过高所致,但检测表明温度正常。检查硬盘发现,其中一块硬盘出现了坏道,但是在更换硬盘重装系统后故障依旧,看来硬盘出现坏道很可能是计算机经常非正常重启导致的。在更换新电源后,故障消失。 拆开两个旧电源,发现其中一个电源的两个相同型号的电解电容(3300μF/10V)顶端有黄褐色的颗粒状凝结物,另一个电源的两个不同型号的电解电容(1000μF/16V,3300μF/16V)顶端也有黄褐色的颗粒状凝结物,这是电容被击穿漏液所导致的。在电子市场花钱购买了相同型号的电容更换后,经测试均恢复正常。这里提醒一下,千万别把电容正负极接反了! 事后分析发现,笔者单位电网常因检修或用电不当突然停电,导致配件上的电容被击穿,一块主板也曾经在一次突然停电后罢工,检查发现几个大电解电容被击穿漏液,更换电容后恢复正常。 3. 显卡接触不良的实例 故障现象:朋友电脑配置为明基BenQ 77G的显示器、技嘉8IRX的主板、P4 1.6G CPU、80G硬盘、小影霸速配3000显卡、全向极云飞瀑内猫、主板自带AC97的声卡。因装修房子,要挪动电脑,就把电脑后的连线都拆了。后来自己接好线后,电脑却怎么也启动不起来了。电脑自检正常,闪过主板LOGO后,出现WINDOWS 98启动画面,接着光标闪动,一切很正常,可是约摸着快要进入系统的时候,电脑突然“嘀”的一声重启动了,重新启动几次都是这样。 故障分析:笔者的这位朋友是个纯纯的“菜鸟”,初步判断可能是一般性的接线问题,很有可能是鼠标和键盘接反导致的。先是检查了一遍电脑接线,没有问题,会不会是接线松动呢?重新把所有电脑连线接了一遍 故障依旧。启动时选安全模式能进入系统,运行也正常,重启后进入BIOS里查看CPU温度,在正常范围内,排除因CPU过热导致的重启。朋友也没安装新的硬件,故排除电源供电不足导致重启现象。引起故障的原因可能有以 下四个方面:一是软件冲突;二是显示分辨率或刷新率设置高于额定的值;三是显卡和其它硬件冲突、或驱动程序问题导致;四是显卡故障。 故障排除:问朋友发生故障前对机器进行了哪些操作?朋友说拆机前一直都用的很好,没有安装过新软件。没有蛛丝马迹,只有从上面的四个可能的故障原因里排查。重启后,进入安全模式,运行msconfig命令,把启动项里不是操作系统所必需的项都去掉,重启后,故障依旧。看来不是软件安装导致的。接下来看看是不是分辨率和刷新率过高,在安全模式下,将监视器删除,重启动,故障依旧。最后问题都集中在显卡身上了。再次进入安全模式,删除显卡驱动程序,重启动后,跳过显卡驱动安装,能进入正常启动模式,看来故障是驱动程序的问题或显卡与其它硬件冲突引起的了。下载一个新的驱动看能不能解决这个问题呢?拨号上网,机器突然又重启了,难道猫也坏了吗?这可怎么办,真的山穷水复了吗?这台电脑是因为拆了以后就启不起来了,显卡和猫总不会因搬一下机器就坏了吧?想到搬运机器,是不是因为拆装电脑时把显卡碰松导致接触不良而引起的故障呢?抱着最后试一试的心理,打开机箱,将显卡和猫拔出重新插紧安好,装好显卡驱动,重启,竟然看到美丽的桌面了,试着拨号,也没问题了,故障排除了。原来故障是显卡接触不良的导致。 小结:以上显卡接触不良导致电脑不能进入系统故障,现象有点类似显卡故障的症状,如果不从细小问题入手,还真难一时半会解决,甚至会怀疑是硬件故障,而大费周折。
打好补丁,还有就是用杀毒软件查杀木马
冲击波和震荡波的可能性最大我以前也遇到过一上网就重新启动郁闷的不得了你下个补丁就可以了
请登录后再发表评论!作为一个用了12年python,写代码有20年的父亲,我推荐scratch。&br&&br&我三岁半的儿子每天把他当游戏来玩,抓到iPad后有过一半以上时间在玩scratch。&br&&br&兴趣是最好的老师是我一直所信奉的。至少从我自己来说,因为一直听课有些费劲,大部分知识都是靠自学,兴趣二字的重要性不言而喻。而scratch,就是个能让我儿子感兴趣的编程语言。我不需要去催促他,甚至不怎么教他,只要在他做出了新奇的动画后表示赞赏就够了。让他主动去学习,这不是花多少钱能获得的。&br&&br&此外,就是言传身教了吧,如下图。&br&&br&航模堆里玩耍:&br&&br&&img data-rawwidth=&1714& data-rawheight=&1280& src=&/v2-5ef63eab3_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1714& data-original=&/v2-5ef63eab3_r.jpg&&&br&&br&&br&买了新的万用表比我还高兴:&br&&br&&img data-rawwidth=&1280& data-rawheight=&1707& src=&/v2-6dbe1e9ea08c39eb27bac22f46cd8ee8_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-6dbe1e9ea08c39eb27bac22f46cd8ee8_r.jpg&&&br&&br&一有机会就学我的样子用螺丝刀捅飞机:&br&&br&&img data-rawwidth=&1280& data-rawheight=&1707& src=&/v2-38bcb0feb3f1b2cdd981288_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-38bcb0feb3f1b2cdd981288_r.jpg&&&br&&br&玩的是专业级的飞行模拟器,尽管飞的还很不好:&br&&br&&img data-rawwidth=&1280& data-rawheight=&1707& src=&/v2-ed3eb0bb689b7d16c5a8d4_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/v2-ed3eb0bb689b7d16c5a8d4_r.jpg&&&br&&br&&br&学我工作的样子:&br&&br&&img data-rawwidth=&1707& data-rawheight=&1280& src=&/v2-e529ec31b9ea1e2e64c7322_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&/v2-e529ec31b9ea1e2e64c7322_r.jpg&&&br&&br&&br&能承载起他的梦想是我最大的期望:&br&&br&&img data-rawwidth=&1707& data-rawheight=&1280& src=&/v2-2da7f5df602a6fb7d97ef2_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&/v2-2da7f5df602a6fb7d97ef2_r.jpg&&
作为一个用了12年python,写代码有20年的父亲,我推荐scratch。 我三岁半的儿子每天把他当游戏来玩,抓到iPad后有过一半以上时间在玩scratch。 兴趣是最好的老师是我一直所信奉的。至少从我自己来说,因为一直听课有些费劲,大部分知识都是靠自学,兴趣二字…
&img src=&/v2-40d51eb2e48496c7acd11b141c93ed39_b.png& data-rawwidth=&900& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&/v2-40d51eb2e48496c7acd11b141c93ed39_r.png&&&p&啊,好久没写东西了,发现收到了好多人的私信,我只要有时间都一一回复了,虽说不一定有用,但权当我们互相交流啊,互相学习呀。&/p&&p&最近一篇《我分析了42万字歌词后,终于搞清楚民谣歌手唱什么了》文章(因为原文是微信上的,就不分享链接了,想看的自己搜索即可)在各个平台都可以看到,也正因为如此,一时间很多小伙伴(特别是新手、小白)私信我“怎样写爬虫?”“哪里可以找到爬虫教程?”之类的,嗯,大家也知道我的尿性,肯定不会写一篇文章专门教爬虫,我会推荐一些教程,毕竟好教程现在太多了,照着学习就行了。&/p&&img src=&/v2-d9bff4c3ebb00b5828936fdf3c99a538_b.jpg& data-rawwidth=&351& data-rawheight=&202& class=&content_image& width=&351&&&p&PS.我会尽量整理和分享一些有详细步骤以及代码的爬虫教程,希望纯小白也能照着操作学写爬虫脚本。&/p&&h2&教程一:&a href=&/?target=http%3A///1052.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python爬虫学习系列教程&i class=&icon-external&&&/i&&/a&&/h2&&p&这个博主的这个爬虫学习系列教程,很详细啊,从入门到实战、进阶等都有详细的文档介绍,对爬虫感兴趣的小伙伴推荐一看。&br&&/p&&h2&教程二:&a href=&/?target=https%3A///search%3Fsearch%3D%25E7%2588%25AC%25E8%2599%25AB& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&学习网站上的爬虫教程&i class=&icon-external&&&/i&&/a&&/h2&&p&实验楼的爬虫教程不是太多,但是都有详细的讲解和代码,而且有在线开发环境,对于学习者是非常不错的。其中最喜欢的就是那个 &a href=&/?target=https%3A///courses/448& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&爬豆瓣热门电影的教程&i class=&icon-external&&&/i&&/a& ,因为我自己超喜欢看电影。还有一个 &a href=&/?target=https%3A///courses/595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&爬美女照片&i class=&icon-external&&&/i&&/a& 也挺好的 ,算是福利吧,哈哈。&/p&&h2&教程三:&a href=&/?target=https%3A///facert/awesome-spider& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - facert/awesome-spider: 爬虫集合&i class=&icon-external&&&/i&&/a&&/h2&&p&这是一个收集各种爬虫 (默认爬虫语言为 python)的集合,其中还有蛮多爬虫蛮有趣的,而且每个爬虫都有详细的开源代码以及一些说明讲解,如果想写个爬虫的话,倒是可以参照写写。&/p&&h2&教程四:&a href=&/?target=http%3A//blog.csdn.net/column/details/why-bug.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python爬虫入门教程&i class=&icon-external&&&/i&&/a&&/h2&&p&这个入门教程主要是简单的介绍如何使用Python的相关模块如urllib2来实现网络爬虫,和刚才介绍的第一个爬虫教程有点类似,不过没有第一个那么系统完善,但是新手也是可以看看的。&br&&/p&&p&------------------&/p&&p&上面是教程,这里介绍一些爬虫软件,不想自己写爬虫的,可以用,较为方便。&/p&&h2&1.&a href=&/?target=http%3A//www./68.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Java开源Web爬虫分类列表&i class=&icon-external&&&/i&&/a&&/h2&&p&列表主要是一些开源的WEB爬虫,感兴趣的可以看看。&br&&/p&&h2&2.&a href=&/?target=http%3A///archives/34383& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&33款可用来抓数据的开源爬虫软件工具&i class=&icon-external&&&/i&&/a&&/h2&&p&这篇文章对较为知名及常见的开源爬虫软件进行梳理,按开发语言进行汇总。有需求的可以看看。&br&&/p&&ul&&li&关于这方面,你也可以看看知乎上的这篇文章:&a href=&/question/& class=&internal&&GitHub 上有哪些优秀的 Java 爬虫项目?&/a&&br&&/li&&li&说到这里,也可以看看知乎上关于爬虫的话题: &a href=&/topic/& class=&internal&&爬虫(计算机网络) - 索引 - 知乎&/a&,可以学到很多的。&/li&&/ul&&br&&p&---------------&/p&&p&爬虫可以做很多有用的事情,方便快捷,同时也可以做很多有趣的事情,分享几个有趣好玩的爬虫教程:&br&&/p&&h2&有趣的爬虫一:&a href=&/?target=http%3A//www.crazyant.net/2076.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&怎样借助Python爬虫给宝宝起个好名字&i class=&icon-external&&&/i&&/a&&/h2&&p&最近看到的一篇文章,深深觉得有个程序员爸爸是多门的方便啊,连取名字都可以这么自动化……&/p&&h2&有趣的爬虫二:&a href=&/?target=http%3A///archives/806/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言&i class=&icon-external&&&/i&&/a&&/h2&&p&这是比较久以前的一篇文章了,也算是比较有趣吧,当时看到后就两个字“佩服”,学PHP的小伙伴可以看看哈。&/p&&ul&&li&说到有趣,推荐看看知乎上的这个问题:&a href=&/question/& class=&internal&&利用爬虫技术能做到哪些很酷很有趣很有用的事情?&/a&,发现广大知友果然超厉害的啊,很有趣。&/li&&/ul&&p&----------------&/p&&p&其他:&/p&&h2&&a href=&/?target=https%3A//my.oschina.net/jhao104/blog/647308& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python爬虫:一些常用的爬虫技巧总结&i class=&icon-external&&&/i&&/a&&/h2&&p&前面介绍的主要是详细的爬虫教程,这篇文章呢,主要是总结一些常用的爬虫技巧的代码,如果经常涉及到写爬虫脚本,都可以直接拿去复用的,很方便。&br&&/p&&p&当然,有爬虫,肯定就有反爬虫啦:&/p&&h2&&a href=&/?target=http%3A///articles/web/115960.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&超轻量级反爬虫方案&i class=&icon-external&&&/i&&/a&&/h2&&p&文章列出的是一种简单的反爬虫方案,可以当做概念示例或者是救急方案,如果需要进一步深化,还需要在其他方面加强才行。&br&&/p&&p&----------------&/p&&p&最后:&/p&&p&好久没写了,生疏了好多,看文字也知道这篇文章我写的较为随意,提起笔后就哗啦啦想到哪里写到哪里,无论如何,还是希望可以给那些想写爬虫玩玩,但不知道如何开头的小伙伴一点帮助。&/p&&p&还是那句老话,如果你有关于爬虫的一些教程,或者一些有趣的爬虫可以评论或者私信给我,我添加进来,毕竟资源共享可以得到更多更好的资源。&/p&
啊,好久没写东西了,发现收到了好多人的私信,我只要有时间都一一回复了,虽说不一定有用,但权当我们互相交流啊,互相学习呀。最近一篇《我分析了42万字歌词后,终于搞清楚民谣歌手唱什么了》文章(因为原文是微信上的,就不分享链接了,想看的自己搜索即…
&p&在流行语言排行榜的前5名语言中,Python是毫无疑问最容易学习的语言,近年来在大数据、人工智能领域又有了广泛应用,学习者众多。&/p&&p&由于其语法非常直观,即便是孩子也容易入门,学习效率高,很多青少年也在学Python编程。以下是我推荐的编程学习书籍。&/p&&blockquote&&p&1、适合完全没有编程基础 &br&&/p&&/blockquote&&p&1《与孩子一起学编程》&/p&&p&借 python 来讲编程入门,也适合孩子学习。&br&&/p&&p&&i&2《&i&Learn Python The Hard Way(笨办法学 Python)&/i&》&/i&&/p&&p&不说废话、以练习为导向的教材。&br&&/p&&p&3《简明Python教程》&/p&&p&大致了解了一下Python架构。&/p&&p&在线中文版本:&a href=&/?target=http%3A///manual/Python_chinese/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/ma&/span&&span class=&invisible&&nual/Python_chinese/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&/p&&p&4《Python基础教程》&/p&&p&是经典的Python入门教程,层次鲜明,结构严谨,内容翔实,特别是最后几章,作者将前面讲述的内容应用到10个引人入胜的项目中,并以模板的形式介绍了项目的开发过程,手把手教授Python开发,让读者从项目中领略Python的真正魅力。这本书既适合初学者夯实基础,又能帮助Python程序员提升技能,即使是Python方面的技术专家,也能从书里找到耳目一新的内容。&br&&/p&&p&5《Python入门》&/p&&p&容易理解而且读起来幽默风趣,对于编程初学者和Python语言新手而言是理想的书籍。作者卢布诺维克带你从基础知识开始,到深入和多样的议题,用混合了教材以及指南风格的代码片段来解释Python3中的概念。&br&&/p&&p&6《Head First Python(中文版)》&/p&&p&超出枯燥的语法和用法手册,通过一种独特的方法教你学习这种语言。你会迅速掌握Python的基础知识,然后转向持久存储、异常处理、Web开发、SQLite.数据加工和Google App Engine。你还将学习如何为Android编写移动应用,这都要归功于Python为你赋予的强大能力。本书会提供充分并且完备的学习体验,帮助你成为一名真正的Python程序员。&br&&/p&&p&7《The Python Tutorial》 &/p&&p&就是 Python 官方提供的入门教程,作者是Python 语言的发明者 Guido van Rossum。&/p&&p&官网:&a href=&/?target=http%3A//docs.python.org/2/tutorial/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Python Tutorial&i class=&icon-external&&&/i&&/a&,&a href=&/?target=https%3A//docs.python.org/3/tutorial/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Python Tutorial&i class=&icon-external&&&/i&&/a&&/p&&p&网站&a href=&/?target=http%3A//bbs.pinggu.org/linkto.php%3Furl%3Dhttp%253A%252F%%252F& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&/&i class=&icon-external&&&/i&&/a&提供了最新版 2.7.8 和 3.4.1 的中文版。&br&&/p&&p&&a href=&/?target=http%3A///writer& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&登录 - 简书&i class=&icon-external&&&/i&&/a&&/p&&blockquote&&p&2 适合有一点基础的&/p&&/blockquote&&p&8《Python核心编程》&br&&/p&&p&是经典的Python指导书,在上一版的基础上进行了全面升级。全书分为两个部分:第1部分占据了大约三分之二的篇幅,阐释这门语言的“核心”内容,包括基本的概念和语句、语法和风格、Python对象、数字类型、序列类型、映射和集合类型、条件和循环、文件和输入/输出、错误和异常、函数和函数式编程、模块、面向对象编程、执行环境等内容:第2部分则提供了各种高级主题来展示可以使用Python做些什么,包括正则表达式、网络编程、网络客户端编程、多线程编程、图形用户界面编程、Web编程、数据库编程、扩展Python和一些其他材料。《Python核心编程(第2版)》适合Python初学者,以及已经入门但想继续学习和提高自身Python技巧的程序员。&/p&&p&9《像计算机科学家一样思考Python》&/p&&p&按照培养读者像计算机科学家一样的思维方式的思路来教授Python语言编程。全书贯穿的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供一个具体场景方便介绍的媒介。《像计算机科学家一样思考Python》并不是一本介绍语言的书,而是一本介绍编程思想的书。和其他编程设计语言书籍不同,它不拘泥于语言细节,而是尝试从初学者的角度出发,用生动的示例和丰富的练习来引导读者渐入佳境。&br&&/p&&p&10《Python 3程序开发指南》&/p&&p&首先讲述了构成Python语言的8个关键要素,之后分章节对其进行了详尽的阐述,包括数据类型、控制结构与函数、模块、文件处理、调试、进程与线程、网络、数据库、正则表达式、GUI程序设计等各个方面,并介绍了其他一些相关主题。全书内容以实例讲解为主线,每章后面附有练习题,便于读者更好地理解和掌握所讲述的内容。&br&&/p&&p&11《Hello Python》&/p&&p&不是传统的教材式的,是以一个一个游戏为例来引导你学习Python。这本书有点难,语法讲得也比较少。&/p&&p&12《Python学习手册》&br&&/p&&p&是作者根据过去10年用于教学而广为人知的培训课程的材料编写而成的。除了有许多详实说明和每章小结之外,每章还包括一个头脑风暴:这是《Python学习手册》独特的一部分,配合以实用的练习题和复习题,让读者练习新学的技巧并测试自己的理解程度。&/p&&p&13《Python高级编程》&/p&&p&通过大量的实例,介绍了Python语言的最佳实践和敏捷开发方法,并涉及整个软件生命周期的高级主题,诸如持续集成、版本控制系统、包的发行和分发、开发模式、文档编写等。《Python高级编程》首先介绍如何设置最优的开发环境,然后以Python敏捷开发方法为线索,阐述如何将已被验证的面向对象原则应用到设计中。这些内容为开发人员和项目管理人员提供了整个软件工程中的许多高级概念以及专家级的建议,其中有些内容的意义甚至超出了Python语言本身。&/p&&p&14 《编写高质量代码:改善Python程序的91个建议》&/p&&p&本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。本书不仅以建议的方式从正反两方面给出了被实践证明为十分优秀的解决方案或非常糟糕的解决方案,而且分析了问题产生的根源,会使人有一种醍醐灌顶的感觉,豁然开朗。&/p&&blockquote&&p&3 动手实践&/p&&/blockquote&&p&15《Google's Python Class》&/p&&p&&a href=&/?target=http%3A///intl/zh-CN/edu/languages/google-python-class/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/intl/zh&/span&&span class=&invisible&&-CN/edu/languages/google-python-class/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 提供了一些习题,让你通过这些习题了解&a href=&/?target=http%3A//lib.csdn.net/base/11& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python&i class=&icon-external&&&/i&&/a&的特性,让你尽快用Python去解决一些问题,做完这些习题,感觉比看完整本书还有感觉。&/p&&p&16《Python Cookbook》&/p&&p&有第二版和第三版,可以两本都买,重复度并不高。本书介绍了Python应用在各个领域中的一些使用技巧和方法,从最基本的字符、文件序列、字典和排序,到进阶的面向对象编程、数据库和数据持久化、 XML处理和Web编程,再到比较高级和抽象的描述符、装饰器、元类、迭代器和生成器,均有涉及。书中还介绍了一些第三方包和库的使用,包括 Twisted、GIL、PyWin32等。本书覆盖了Python应用中的很多常见问题,并提出了通用的解决方案。书中的代码和方法具有很强的实用性,可以方便地应用到实际的项目中,并产生立竿见影的效果。&/p&&blockquote&&p&4 文档&/p&&/blockquote&&p&官方文档 &/p&&p&&a href=&/?target=http%3A//http/docs.python.org/2.7/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://docs.python.org/2.7/&i class=&icon-external&&&/i&&/a&&/p&&p&&a href=&/?target=https%3A//docs.python.org/3.5/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://docs.python.org/3.5/&i class=&icon-external&&&/i&&/a&&/p&&br&&br&&p&对编程特别感兴趣的家长,可以去看下我前一期的知乎Live, &a href=&/lives/078272& class=&internal&&教孩子编程,从玩游戏到编游戏&/a&(四星半好评)。&/p&&br&要了解更多兴趣培养相关的实践知识和案例,欢迎参加 &a href=&/lives/598208& class=&internal&&知乎 Live - 激发孩子热爱奥数和编程的兴趣&/a&,将会具体讲一些奥数启蒙的兴趣引导相关的实践。以及编程方面的实践。
在流行语言排行榜的前5名语言中,Python是毫无疑问最容易学习的语言,近年来在大数据、人工智能领域又有了广泛应用,学习者众多。由于其语法非常直观,即便是孩子也容易入门,学习效率高,很多青少年也在学Python编程。以下是我推荐的编程学习书籍。1、适合…
&img src=&/v2-a66ded42c1145_b.png& data-rawwidth=&1570& data-rawheight=&885& class=&origin_image zh-lightbox-thumb& width=&1570& data-original=&/v2-a66ded42c1145_r.png&&&h2&1,引言&/h2&&p&不知道有多少人关注轮子哥是为了等带逛的,反正我是其中一个...&/p&&p&现在,我就用爬虫来抢轮子哥的饭碗把!!~&/p&&h2&2,大纲&/h2&&p&要想实现带逛必须实现以下三个步骤 &/p&&ol&&li&找到知乎用户回答的问题&/li&&li&检查是否带有照片并判断是否符合带逛规则&/li&&li&点赞&/li&&/ol&&h2&3,开始爬&/h2&&p&&b&1,找到知乎用户回答的问题&/b&&/p&&p&对于第一点,我开始的想法是抓取zhihu的sitemap,百度半天只找到个“&a href=&/sitemap/answer.new.0.txt& class=&internal&&&span class=&invisible&&https://www.&/span&&span class=&visible&&/sitemap/answe&/span&&span class=&invisible&&r.new.0.txt&/span&&span class=&ellipsis&&&/span&&/a&”,然而里面的回答却不是最新的,所以只能靠自己手动抓取最新的回答了...(有谁有最新的sitemap请私信我下,谢谢!)&/p&&p&抓取最新的回答的话,只能从话题开始....&/p&&p&然后我就用@grapeot 的&a href=&/p/?refer=grapeot& class=&internal&&抛掉Evernote,把知乎当成你的知识后花园&/a&,搜索了下轮子哥点过的赞,然后再把其中问题的“话题”关注下,那么回答应该是抓好了&/p&&p&我用的链接是这个 &a href=&/?target=http%3A//zhihu.grapeot.me/excited-vczh%3Fq%3D%25E5%25A4%25A7%25E8%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&轮子哥的知乎个人搜索(大胸)&i class=&icon-external&&&/i&&/a&&/p&&img src=&/v2-07a06ff02c560dad15a172_b.png& data-rawwidth=&1683& data-rawheight=&975& class=&origin_image zh-lightbox-thumb& width=&1683& data-original=&/v2-07a06ff02c560dad15a172_r.png&&&p&以下就是我关注的话题了~(一个新号.)&/p&&p&现在开始爬虫把~&/p&&p&&b&获取所有的话题列表&/b&&/p&&p&当我点击展开更多的时候,可以看到加载了一个请求,而且能看到url里面 offset=20,我们只要改成0便能抓取到我们所有的话题了&/p&&img src=&/v2-05e5f6c66eebb30e1ca87db1cc84177b_b.png& data-rawwidth=&960& data-rawheight=&1040& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/v2-05e5f6c66eebb30e1ca87db1cc84177b_r.png&&&img src=&/v2-d24eaab6bd05d88be307b662_b.png& data-rawwidth=&657& data-rawheight=&165& class=&origin_image zh-lightbox-thumb& width=&657& data-original=&/v2-d24eaab6bd05d88be307b662_r.png&&&p&代码如下&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&c1&&# -*- coding: utf-8 -*-&/span&
&span class=&kn&&import&/span& &span class=&nn&&requests&/span&
&span class=&n&&HEADERS&/span& &span class=&o&&=&/span& &span class=&p&&{&/span&
&span class=&s1&&'Cookie'&/span&&span class=&p&&:&/span&&span class=&s1&&''&/span&&span class=&p&&,&/span&
&span class=&s1&&'User-Agent'&/span&&span class=&p&&:&/span&&span class=&s1&&'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'&/span&
&span class=&p&&}&/span&
&span class=&k&&if&/span& &span class=&n&&__name__&/span& &span class=&o&&==&/span& &span class=&s1&&'__main__'&/span&&span class=&p&&:&/span&
&span class=&n&&s&/span& &span class=&o&&=&/span& &span class=&n&&requests&/span&&span class=&o&&.&/span&&span class=&n&&session&/span&&span class=&p&&()&/span&
&span class=&c1&&# 添加浏览器头&/span&
&span class=&c1&&# 获取话题的url,注意 offset已经改为了0,表示从0开始后面的80条&/span&
&span class=&n&&url&/span& &span class=&o&&=&/span& &span class=&s1&&'/followed_topics?offset=0&limit=80'&/span&
&span class=&n&&z&/span& &span class=&o&&=&/span& &span class=&n&&s&/span&&span class=&o&&.&/span&&span class=&n&&get&/span&&span class=&p&&(&/span&&span class=&n&&url&/span&&span class=&p&&,&/span&&span class=&n&&headers&/span&&span class=&o&&=&/span&&span class=&n&&HEADERS&/span&&span class=&p&&)&/span&
&span class=&c1&&#获取所有话题&/span&
&span class=&n&&topic&/span& &span class=&o&&=&/span& &span class=&n&&z&/span&&span class=&o&&.&/span&&span class=&n&&json&/span&&span class=&p&&()[&/span&&span class=&s1&&'payload'&/span&&span class=&p&&]&/span&
&span class=&c1&&#打印出关注了多少条话题&/span&
&span class=&k&&print&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&topic&/span&&span class=&p&&)&/span&
&span class=&c1&&#这边返回36,与我实际的一样,所以话题是应该抓取成功了&/span&
&/code&&/pre&&/div&&p&&b&获取每个话题下最新的内容&/b&&/p&我先点击“胸部”,然后点击按照时间排序,可以看到加载了一个请求,请求的参数中topic_id是话题的id,feed_type是表明按照时间排序,offset表示是否从某个时间戳往后加载&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&method:next
params:{&offset&:0,&topic_id&:11385,&feed_type&:&timeline_feed&}
&/code&&/pre&&/div&&img src=&/v2-a335fc9e6ad0_b.png& data-rawwidth=&948& data-rawheight=&738& class=&origin_image zh-lightbox-thumb& width=&948& data-original=&/v2-a335fc9e6ad0_r.png&&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&
&span class=&c1&&#代码接上面&/span&
&span class=&n&&data&/span& &span class=&o&&=&/span& &span class=&p&&{&/span&&span class=&s1&&'method'&/span&&span class=&p&&:&/span&&span class=&s1&&'next'&/span&&span class=&p&&,&/span&
&span class=&s1&&'params'&/span&&span class=&p&&:&/span&&span class=&s1&&'{&offset&:,&topic_id&:11385,&feed_type&:&timeline_feed&}'&/span& &span class=&p&&}&/span&
&span class=&n&&z1&/span& &span class=&o&&=&/span& &span class=&n&&s&/span&&span class=&o&&.&/span&&span class=&n&&post&/span&&span class=&p&&(&/span&&span class=&s1&&'/node/TopicFeedList'&/span&&span class=&p&&,&/span&
&span class=&n&&data&/span&&span class=&o&&=&/span&&span class=&n&&data&/span&&span class=&p&&)&/span&
&span class=&k&&print&/span& &span class=&n&&z1&/span&&span class=&o&&.&/span&&span class=&n&&status_code&/span&
&/code&&/pre&&/div&&p&然后发现返回httpcode403.&/p&&p&这时候直接回去查看 Request headers,可以发现里面有一项 X-Xsrftoken,直接查看源代码,果然找到了&/p&&img src=&/v2-abba1aba7c_b.png& data-rawwidth=&1576& data-rawheight=&774& class=&origin_image zh-lightbox-thumb& width=&1576& data-original=&/v2-abba1aba7c_r.png&&&p&修改后的代码如下:&/p&&p&&u&注意 data中的
'params':'{&offset&:&a href=&tel:&&&/a&,&topic_id&:11385,&feed_type&:&timeline_feed&}',大括号外面一定要有引号,被这玩意折腾了很久 ...&/u&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&def getxsrf():
z = s.get('/topic#胸部',headers=HEADERS)
#用xpath获取xsrf
_xsrf = etree.HTML(z.content).xpath('//input[@name=&_xsrf&]/@value')[0]
return _xsrf
s = requests.session()
_xsrf = getxsrf()
#把_xsrf添加到浏览器头
HEADERS['X-Xsrftoken'] = _xsrf
data = {'method':'next',
'params':'{&offset&:,&topic_id&:11385,&feed_type&:&timeline_feed&}' }
z1 = s.post('/node/TopicFeedList',
data=data,headers=HEADERS)
print z1.status_code
&/code&&/pre&&/div&&p&把_xsrf添加到浏览器头里面,里面就好了~!&br&&/p&&p&剩下的就是解析html,得到照片地址&/p&&p&直接上代码&/p&&img src=&/v2-f9cce0adb742c1_b.png& data-rawwidth=&1212& data-rawheight=&740& class=&origin_image zh-lightbox-thumb& width=&1212& data-original=&/v2-f9cce0adb742c1_r.png&&&br&&p&因为完整写完太长了,所以分为上下两篇&/p&&h2&总结&/h2&&p&我们已经能获取到所有最新话题下的回答中的图片了&/p&&p&下一篇的话,我们就是&/p&&ol&&li&下载照片&/li&&li&判断是否符合带逛规则&br&&/li&&li&点赞&/li&&/ol&&p&github地址如下 &a href=&/?target=https%3A///kimg1234/pachong/blob/master/lundaig.py& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&轮带逛&i class=&icon-external&&&/i&&/a&&/p&
1,引言不知道有多少人关注轮子哥是为了等带逛的,反正我是其中一个...现在,我就用爬虫来抢轮子哥的饭碗把!!~2,大纲要想实现带逛必须实现以下三个步骤 找到知乎用户回答的问题检查是否带有照片并判断是否符合带逛规则点赞3,开始爬1,找到知乎用户回答的…
&img src=&/v2-f213a3cdc46aee4defe7_b.png& data-rawwidth=&1413& data-rawheight=&818& class=&origin_image zh-lightbox-thumb& width=&1413& data-original=&/v2-f213a3cdc46aee4defe7_r.png&&接上篇&a href=&/p/?refer=pachong& class=&internal&&爬虫带你逛知乎(上篇)&/a&&p&我们需要做的是:&/p&&ol&&li&下载照片&/li&&li&判断是否符合带逛规则&br&&/li&&li&点赞&/li&&/ol&&br&&h2&下载照片&/h2&&p&直接上代码把 &/p&&p&接收一个列表,然后遍历列表,再用requests下载,图片存储再images目录下&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&c1&&#下载图片 &/span&
&span class=&k&&def&/span& &span class=&nf&&downloadimage&/span&&span class=&p&&(&/span&&span class=&n&&urllist&/span&&span class=&p&&):&/span&
&span class=&k&&for&/span& &span class=&n&&url&/span& &span class=&ow&&in&/span& &span class=&n&&urllist&/span&&span class=&p&&:&/span&
&span class=&n&&ir&/span& &span class=&o&&=&/span& &span class=&n&&s&/span&&span class=&o&&.&/span&&span class=&n&&get&/span&&span class=&p&&(&/span&&span class=&n&&url&/span&&span class=&p&&,&/span&&span class=&n&&headers&/span&&span class=&o&&=&/span&&span class=&n&&HEADERS&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&n&&ir&/span&&span class=&o&&.&/span&&span class=&n&&status_code&/span& &span class=&o&&==&/span& &span class=&mi&&200&/span&&span class=&p&&:&/span&
&span class=&nb&&open&/span&&span class=&p&&(&/span&&span class=&s1&&'images\&/span&&span class=&si&&%s&/span&&span class=&s1&&'&/span& &span class=&o&&%&/span&&span class=&p&&(&/span&&span class=&n&&url&/span&&span class=&o&&.&/span&&span class=&n&&split&/span&&span class=&p&&(&/span&&span class=&s1&&r'/'&/span&&span class=&p&&)[&/span&&span class=&o&&-&/span&&span class=&mi&&1&/span&&span class=&p&&]),&/span& &span class=&s1&&'wb'&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&write&/span&&span class=&p&&(&/span&&span class=&n&&ir&/span&&span class=&o&&.&/span&&span class=&n&&content&/span&&span class=&p&&)&/span&
&/code&&/pre&&/div&&h2&判断是否符合带逛规则&/h2&&p&这个采用的是&a href=&/?target=https%3A///ImageGame/Portal%3Ftask%3Dyanzhi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&微软小冰测颜值&i class=&icon-external&&&/i&&/a&接口&/p&&p&我们先点击上传照片,发现有两个请求&/p&&p&请求1,&/p&&p&向&a href=&/?target=http%3A///Api/Image/UploadBase64& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/Api/&/span&&span class=&invisible&&Image/UploadBase64&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& post一个请求&/p&&p&发送的参数就是图片的base64格式&br&&img src=&/v2-30c2cf9cea7a14dbb06d9f_b.png& data-rawwidth=&1340& data-rawheight=&603& class=&origin_image zh-lightbox-thumb& width=&1340& data-original=&/v2-30c2cf9cea7a14dbb06d9f_r.png&&&/p&&p&返回值是 图片在微软的地址(下面会用到)&br&&img src=&/v2-ce345e551df8_b.png& data-rawwidth=&943& data-rawheight=&253& class=&origin_image zh-lightbox-thumb& width=&943& data-original=&/v2-ce345e551df8_r.png&&&/p&&p&请求2&/p&&p&向&a href=&/?target=http%3A///Api/ImageAnalyze/Process& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/Api/&/span&&span class=&invisible&&ImageAnalyze/Process&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& post一个请求&/p&&p&&b&查询参数有两个:&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&service:yanzhi
tid:dfaa7a4188905
&/code&&/pre&&/div&&p&service是固定的(因为我们测的是颜值)&/p&&p&tid应该是一个验证参数(到时候去网页源代码找)&/p&&p&&b&发送的参数有三个:&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&MsgId:6
CreateTime:
Content[imageUrl]:/image/fetchimage?key=JMGkEUAgbwTVisRZ31qsgvGGkHchYrclVQED5dpuou5ktazcMYiXmN06Rj8
&/code&&/pre&&/div&&p&经过验证 MsgId & CreateTime都是时间戳&/p&&p&Content[imageUrl] 则是我们请求1或者的返回值&/p&&img src=&/v2-d3c83a63daa054dea8210_b.png& data-rawwidth=&1281& data-rawheight=&538& class=&origin_image zh-lightbox-thumb& width=&1281& data-original=&/v2-d3c83a63daa054dea8210_r.png&&&p&&b&返回值&/b&&br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&text:&妹子竟有8.8分颜值,美得无法直视,多少直男竞折腰,腰,腰&
&/code&&/pre&&/div&&p&可以看到已经有分数了,只要用正则匹配下就行&/p&&img src=&/v2-0e225da52ec1445325fee70_b.png& data-rawwidth=&1605& data-rawheight=&297& class=&origin_image zh-lightbox-thumb& width=&1605& data-original=&/v2-0e225da52ec1445325fee70_r.png&&&p&最后(获取tid)&/p&&p&把tid复制,然后查看网页源代码,发现tid已经找到了。&/p&&img src=&/v2-78cbaaa1f52d820c07e59d87a3521f12_b.png& data-rawwidth=&754& data-rawheight=&716& class=&origin_image zh-lightbox-thumb& width=&754& data-original=&/v2-78cbaaa1f52d820c07e59d87a3521f12_r.png&&&p&&u&代码如下:&/u&&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&k&&class&/span& &span class=&nc&&checkyanzhi&/span&&span class=&p&&():&/span&
&span class=&k&&def&/span& &span class=&nf&&__init__&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&,&/span&&span class=&n&&imagebase64&/span&&span class=&p&&):&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&ss&/span& &span class=&o&&=&/span& &span class=&n&&requests&/span&&span class=&o&&.&/span&&span class=&n&&session&/span&&span class=&p&&()&/span&
&span class=&c1&&# 上传图片地址&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&uploadurl&/span& &span class=&o&&=&/span& &span class=&s1&&'/Api/Image/UploadBase64'&/span&
&span class=&c1&&# 首页地址(获取tid的地址)&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&yanzhiurl&/span& &span class=&o&&=&/span& &span class=&s1&&'/ImageGame/Portal?task=yanzhi'&/span&
&span class=&c1&&# 得到分数的地址&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&processurl&/span& &span class=&o&&=&/span& &span class=&s1&&'/Api/ImageAnalyze/Process'&/span&
&span class=&c1&&# 图片的base64&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&imagebase64&/span& &span class=&o&&=&/span& &span class=&n&&imagebase64&/span&
&span class=&k&&def&/span& &span class=&nf&&upload&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&):&/span&
&span class=&n&&z&/span& &span class=&o&&=&/span& &span class=&n&&ss&/span&&span class=&o&&.&/span&&span class=&n&&post&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&uploadurl&/span&&span class=&p&&,&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&imagebase64&/span&&span class=&p&&)&/span&
&span class=&n&&ret&/span& &span class=&o&&=&/span& &span class=&n&&z&/span&&span class=&o&&.&/span&&span class=&n&&json&/span&&span class=&p&&()&/span&
&span class=&sd&&&&&&/span&
&span class=&sd&&
返回值&/span&
&span class=&sd&&
{u'Host': u'',&/span&
&span class=&sd&&
u'Url': u'/image/fetchimage?key=JMGqEUAgbwDVieSjh8AgKUq4khZmjMOAaWgzt4SRHupVmtMhpXE1ZRFbaX8'}&/span&
&span class=&sd&&
&&&&/span&
&span class=&k&&return&/span& &span class=&s1&&'&/span&&span class=&si&&%s%s&/span&&span class=&s1&&'&/span&&span class=&o&&%&/span&&span class=&p&&(&/span&&span class=&n&&ret&/span&&span class=&p&&[&/span&&span class=&s1&&'Host'&/span&&span class=&p&&],&/span&&span class=&n&&ret&/span&&span class=&p&&[&/span&&span class=&s1&&'Url'&/span&&span class=&p&&])&/span&
&span class=&k&&def&/span& &span class=&nf&&process&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&):&/span&
&span class=&n&&z1&/span& &span class=&o&&=&/span& &span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&ss&/span&&span class=&o&&.&/span&&span class=&n&&get&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&yanzhiurl&/span&&span class=&p&&)&/span&
&span class=&c1&&#获取tid&/span&
&span class=&n&&tid&/span& &span class=&o&&=&/span& &span class=&n&&etree&/span&&span class=&o&&.&/span&&span class=&n&&HTML&/span&&span class=&p&&(&/span&&span class=&n&&z1&/span&&span class=&o&&.&/span&&span class=&n&&content&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&xpath&/span&&span class=&p&&(&/span&&span class=&s1&&'//input[@name=&tid&]/@value'&/span&&span class=&p&&)[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&
&span class=&n&&tm&/span& &span class=&o&&=&/span& &span class=&n&&time&/span&&span class=&o&&.&/span&&span class=&n&&time&/span&&span class=&p&&()&/span&
&span class=&n&&data&/span& &span class=&o&&=&/span& &span class=&p&&{&/span&&span class=&s1&&'MsgId'&/span&&span class=&p&&:&/span&&span class=&s1&&'&/span&&span class=&si&&%s&/span&&span class=&s1&&'&/span& &span class=&o&&%&/span&&span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&n&&tm&/span&&span class=&o&&*&/span&&span class=&mi&&1000&/span&&span class=&p&&),&/span&&span class=&s1&&'CreateTime'&/span&&span class=&p&&:&/span&&span class=&s1&&'&/span&&span class=&si&&%s&/span&&span class=&s1&&'&/span& &span class=&o&&%&/span&&span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&n&&tm&/span&&span class=&p&&),&/span&
&span class=&s1&&'Content[imageUrl]'&/span&&span class=&p&&:&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&upload&/span&&span class=&p&&()}&/span&
&span class=&n&&z2&/span& &span class=&o&&=&/span& &span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&ss&/span&&span class=&o&&.&/span&&span class=&n&&post&/span&&span class=&p&&(&/span&&span class=&n&&url&/span&&span class=&o&&=&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&processurl&/span&&span class=&p&&,&/span&&span class=&n&&params&/span&&span class=&o&&=&/span&&span class=&p&&{&/span&&span class=&s2&&&service&&/span&&span class=&p&&:&/span&&span class=&s2&&&yanzhi&&/span&&span class=&p&&,&/span&
&span class=&s2&&&tid&&/span&&span class=&p&&:&/span&&span class=&n&&tid&/span&&span class=&p&&},&/span&&span class=&n&&data&/span&&span class=&o&&=&/span&&span class=&n&&data&/span&&span class=&p&&)&/span&
&span class=&sd&&&&&&/span&
&span class=&sd&&
返回值 &/span&
&span class=&sd&&
&span class=&sd&&
&msgId&: &6&,&/span&
&span class=&sd&&
&timestamp&: 0,&/span&
&span class=&sd&&
&receiverId&: null,&/span&
&span class=&sd&&
&content&: {&/span&
&span class=&sd&&
&text&: &妹子竟有8.8分颜值,美得无法直视,多少直男竞折腰,腰,腰&,&/span&
&span class=&sd&&
&imageUrl&: &/image/fetchimage?key=UQAfAC8ABAAAAFcAFgAGABYASgBGADgANQA4ADcANQBCAEQANwAzADQANwA0AEQAMAAzADAAQQBGADQAMgA3ADIAQwBFADYAMgAxAEUAMABFADIA&,&/span&
&span class=&sd&&
&metadata&: {&/span&
&span class=&sd&&
&AnswerFeed&: &FaceBeautyRanking&,&/span&
&span class=&sd&&
&w&: &vc_YiuTzgvP2h_PAW0tgjOnpoMH5vendgPXvgubnhNHehfL4j9L6rvjRsM7ngPXvgPzzhN_YhP7sjvXYrsj7vuP5h8zTiuTlier5jNnUgeTf&,&/span&
&span class=&sd&&
&aid&: &AFC016D1C68CDC73F993&&/span&
&span class=&sd&&
&span class=&sd&&
&span class=&sd&&
&span class=&sd&&
&&&&/span&
&span class=&n&&ret&/span& &span class=&o&&=&/span& &span class=&n&&z2&/span&&span class=&o&&.&/span&&span class=&n&&json&/span&&span class=&p&&()[&/span&&span class=&s1&&'content'&/span&&span class=&p&&][&/span&&span class=&s1&&'text'&/span&&span class=&p&&]&/span&
&span class=&n&&mark&/span& &span class=&o&&=&/span& &span class=&n&&re&/span&&span class=&o&&.&/span&&span class=&n&&findall&/span&&span class=&p&&(&/span&&span class=&s2&&r&\d+\.?\d?&&/span&&span class=&p&&,&/span&&span class=&n&&ret&/span&&span class=&p&&)&/span&
&span class=&k&&return&/span& &span class=&n&&mark&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&
&/code&&/pre&&/div&&h2&点赞&/h2&&p&当我赞一下的时候,可以看到有&/p&&p&向&a href=&/?target=http%3A///Api/ImageAnalyze/Process& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/Api/&/span&&span class=&invisible&&ImageAnalyze/Process&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& post一个请求&/p&&p&参数为answer_id,之前我们就已经获取到了&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&method:vote_up
params:{&answer_id&:&&}
&/code&&/pre&&/div&&br&&img src=&/v2-711f87cc2fbf33935afa4f_b.png& data-rawwidth=&1238& data-rawheight=&679& class=&origin_image zh-lightbox-thumb& width=&1238& data-original=&/v2-711f87cc2fbf33935afa4f_r.png&&&p&代码如下&br&&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&k&&def&/span& &span class=&nf&&vote_up&/span&&span class=&p&&(&/span&&span class=&n&&answer_id&/span&&span class=&p&&):&/span&
&span class=&n&&url&/span& &span class=&o&&=&/span& &span class=&s1&&'/node/AnswerVoteBarV2'&/span&
&span class=&n&&data&/span& &span class=&o&&=&/span& &span class=&p&&{&/span&&span class=&s1&&'method'&/span&&span class=&p&&:&/span&&span class=&s1&&'vote_up'&/span&&span class=&p&&,&/span&
&span class=&s1&&'params'&/span&&span class=&p&&:&/span&&span class=&s1&&'{&answer_id&:&&/span&&span class=&si&&%s&/span&&span class=&s1&&&}'&/span&&span class=&o&&%&/span& &span class=&n&&answer_id&/span&&span class=&p&&}&/span&
&span class=&c1&&# 获取xsrf&/span&
&span class=&n&&_xsrf&/span& &span class=&o&&=&/span& &span class=&n&&getxsrf&/span&&span class=&p&&()&/span&
&span class=&c1&&# 把_xsrf添加到浏览器头&/span&
&span class=&n&&HEADERS&/span&&span class=&p&&[&/span&&span class=&s1&&'X-Xsrftoken'&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&n&&_xsrf&/span&
&span class=&n&&z2&/span& &span class=&o&&=&/span& &span class=&n&&s&/span&&span class=&o&&.&/span&&span class=&n&&post&/span&&span class=&p&&(&/span&&span class=&n&&url&/span&&span class=&p&&,&/span&&span class=&n&&data&/span&&span class=&o&&=&/span&&span class=&n&&data&/span&&span class=&p&&,&/span&&span class=&n&&headers&/span&&span class=&o&&=&/span&&span class=&n&&HEADERS&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&n&&z2&/span&&span class=&o&&.&/span&&span class=&n&&status_code&/span& &span class=&o&&==&/span& &span class=&mi&&200&/span&&span class=&p&&:&/span&
&span class=&c1&&#如果msg不为空,表示点赞出错.&/span&
&span class=&k&&if&/span& &span class=&n&&z2&/span&&span class=&o&&.&/span&&span class=&n&&json&/span&&span class=&p&&()[&/span&&span class=&s1&&'msg'&/span&&span class=&p&&]&/span& &span class=&o&&!=&/span& &span class=&bp&&None&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span& &span class=&n&&z2&/span&&span class=&o&&.&/span&&span class=&n&&json&/span&&span class=&p&&()[&/span&&span class=&s1&&'msg'&/span&&span class=&p&&]&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span& &span class=&s1&&u'&/span&&span class=&si&&%s&/span&&span class=&s1&&点赞ok'&/span& &span class=&o&&%&/span& &span class=&n&&answer_id&/span&
&/code&&/pre&&/div&&h2&总结&/h2&&p&本次爬虫,我们一共抓取了以下接口&/p&&ol&&li&话题列表(关注的所有话题)&/li&&li&每个话题的最新动态&/li&&li&微软小冰测颜值&/li&&li&点赞&/li&&/ol&&p&最后所有的代码都已经上传到github上 &a href=&/?target=https%3A///kimg1234/pachong/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&kimg1234/pachong&i class=&icon-external&&&/i&&/a&&/p&&p&需要注意的是:&/p&&p&我使用的是django modle存储的(数据库为postgres)&/p&&br&&p&&a href=&/?target=https%3A///kimg1234/pachong/blob/master/lundaig.py& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&lundaig.py&i class=&icon-external&&&/i&&/a& 的运行逻辑是:&/p&&ol&&li&抓取当前用户关注的所有话题&/li&&li&获取话题的最新动态&/li&&li&把图片丢给微软小冰验证,并返回分数&/li&&/ol&&p&&a href=&/?target=https%3A///kimg1234/pachong/blob/master/upupup.py& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&upupup.py&i class=&icon-external&&&/i&&/a& 只是点赞&/p&&br&&img src=&/v2-eba0ac95e5a_b.png& data-rawwidth=&1075& data-rawheight=&354& class=&origin_image zh-lightbox-thumb& width=&1075& data-original=&/v2-eba0ac95e5a_r.png&&&br&&p&最后 带逛的结果在 &a href=&/people/che-lun-gun-gun-54/activities& class=&internal&&车轮滚滚 - 知乎&/a&&/p&
接上篇我们需要做的是:下载照片判断是否符合带逛规则 点赞 下载照片直接上代码把 接收一个列表,然后遍历列表,再用requests下载,图片存储再images目录下#下载图片
def downloadimage(urllist):
for url in urllist:
ir = s.get…
&p&系列专栏目录:&br&&/p&&p&第一讲:&a href=&/p/?refer=xmucpp& class=&internal&&Python爬虫|Python爬虫入门(一):爬虫基本结构&简单实例&/a&&/p&&p&第二讲:&a href=&/p/& class=&internal&&Python爬虫|Python爬虫入门(二):请求&/a&&/p&&p&第三讲:&a href=&/p/& class=&internal&&Python爬虫|Python爬虫入门(三):解析&/a&&/p&&p&第四讲:&a href=&/p/& class=&internal&&Python爬虫|Python爬虫入门(四):储存&/a&&/p&&br&&br&&p&------------------------萌萌哒的分割线------------------------&br&&/p&&p&本篇我们主要讲一下第一篇教程(&a href=&/p/& class=&internal&&知乎专栏&/a&)提到的解析。这次我们换一个更复杂的例子,主要教一下大家如何使用审查元素找到我们需要的数据。这只是一个初步的对于HTML解析的方法,更多奇怪的问题,我们会在之后的教程通过实例一个一个深入探讨。&/p&&p&今天我们的示例网页是:&a href=&/?target=http%3A//.cn/cninfo-new/information/companylist& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&巨潮资讯网&i class=&icon-external&&&/i&&/a&,我们的目标是获取所有的股票代码和对应的公司名称。&/p&&br&&h2& 一、HTML简介&/h2&&p&HTML是一种**标记语言**。作为“标记语言”,需要有标记符号去标记。我们简单介绍一下一些标记。&/p&&p&为了和爬虫更好地结合一下,我们教一下大家使用审查元素。我们打开示例网页,然后点击右键,选择“审查元素”或者“检查元素”,然后把标签都收起来,收到这样:&/p&&p&&img src=&/6eeac4916bba42c7f22db2cc36c7d49e_b.png& data-rawwidth=&1036& data-rawheight=&698& class=&origin_image zh-lightbox-thumb& width=&1036& data-original=&/6eeac4916bba42c7f22db2cc36c7d49e_r.png&&首先我们看到最基本的几个标签:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&&html&, &/html&
&head&, &/head&
&body&, &/body&
&/code&&/pre&&/div&&p&&html&定义了这个文件是个HTML,&head&定义了标题,就是这个:&img src=&/f8bea11b8191_b.png& data-rawwidth=&161& data-rawheight=&34& class=&content_image& width=&161&&&/p&&p&&body&里面的就是网页里面的正文。后面一个斜杠加一个同样名字的标签代表这部分结束。&/p&&p&好的,我们继续往下。对着某一个我们需要的数据,比如&img src=&/54e140fa26a23c8fe382ae00be302711_b.png& data-rawwidth=&235& data-rawheight=&82& class=&content_image& width=&235&&&/p&&p&点击“审查元素”,我们会看到:&/p&&p&&img src=&/a740e63dcb015a58a0c596_b.png& data-rawwidth=&1036& data-rawheight=&698& class=&origin_image zh-lightbox-thumb& width=&1036& data-original=&/a740e63dcb015a58a0c596_r.png&&开发者工具很好地显示了HTML的层层逻辑。我们在这里列举一下我们经常见到的一些标签。(关于标签详细含义的介绍,请戳本节结束的参考资料。)&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&&div&; &span&; &p&;
&table&; &td&; &tr&;
&ul&; &li&;
&/code&&/pre&&/div&&p&我们再观察一下我们需要的数据的那段HTML:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&&a target=&_blank& href=&.cn/information/companyinfo_n.html?fulltext?szmb0001 平安银行&/a&
&/code&&/pre&&/div&&p&我们看到,在&a&标签的里面还有一些XX=&XX&的东西,这个是标签的属性。(具体的含义我们也不多介绍,如果想深入了解,请戳本节结束的参考资料。)&/p&&p&一些基本的概念就讲到这里。也许你会以为这还不够。这当然不够,但是对于bs4的一些基本用法已经足够了。&/p&&p&参考资料:W3School是一套非常好的Web开发教程。关于HTML,请戳:&a href=&/?target=http%3A//.cn/html/html_intro.asp& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&HTML 简介&i class=&icon-external&&&/i&&/a&&br&&/p&&h2&二、bs4解析HTML&/h2&&p&这次我们使用IDLE来编写程序。&/p&&p&在使用之前,你需要下载一下这个第三方库(&a href=&/p/?refer=xmucpp& class=&internal&&知乎专栏&/a&)。&/p&&p&我们打开一个新文件:&/p&&p&&img src=&/74c47254eaa7c6c149c177e80e5025b7_b.png& data-rawwidth=&674& data-rawheight=&235& class=&origin_image zh-lightbox-thumb& width=&674& data-original=&/74c47254eaa7c6c149c177e80e5025b7_r.png&&然后按照第二讲的请求方法(&a href=&/p/?refer=xmucpp& class=&internal&&知乎专栏&/a&),先把HTML请求下来:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&import requests
def getHTML(url):
r = requests.get(url)
return r.content
&/code&&/pre&&/div&&p&接着,我们在审查元素里面去找我们需要的数据(见本篇第一部分)。我们接下来要做的事情是,用bs4这个强大的工具,通过前面提到的标签和标签的属性定位到某个标签。&/p&&p&首先我们要导入模块并创建一个BeautifulSoup对象:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&from bs4 import BeautifulSoup
def parseHTML(html):
soup = BeautifulSoup(html,'html.parser')
&/code&&/pre&&/div&&p&后面的这个参数是解析器。关于解析器的选择,请参考官方文档:&a href=&/?target=https%3A///software/BeautifulSoup/bs4/doc.zh/%23id9& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Beautiful Soup 4.2.0 文档&i class=&icon-external&&&/i&&/a&。我们这里使用Python自带的解析器,这样可以避免Windows下坑爹的lxml安装问题(&a href=&/p/?refer=xmucpp& class=&internal&&知乎专栏&/a&)。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&def parseHTML(html):
soup = BeautifulSoup(html,'html.parser')
body = soup.body
company_middle = body.find('div',attrs={'class':'middle'})
company_list_ct = company_middle.find('div',attrs={'class':'list-ct'})
&/code&&/pre&&/div&&p&事实上,找合适的标签这个技能有很多简便的实现方式和技巧。但是对于新手来说,最简单的方法反而是一个一个标签定位下去。这小段代码就示例了这个过程。从代码我们可以看到,直接索引和用find方法都是可以的。find方法里面也可以加上attrs参数,然后用字典传入我们想找的标签属性。&/p&&p&一个小Tip:HTML的标签习惯用“-”连接,比如“list-ct”,而不是“_”,比如&/p&&p&继续往下解析:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&from bs4 import BeautifulSoup
def parseHTML(html):
soup = BeautifulSoup(html,'html.parser')
body = soup.body
company_middle = body.find('div',attrs={'class':'middle'})
company_list_ct = company_middle.find('div',attrs={'class':'list-ct'})
for company_ul in company_list_ct.find_all('ul',attrs={'class':'company-list'}):
for company_li in company_ul.find_all('li'):
company_url = company_li.a['href']
company_info = company_li.get_text()
&/code&&/pre&&/div&&p&如果我们想取出某一类标签下所有的HTML,那就用find_all方法就可以。如果我们想要某个标签属性里面的值,那么就用字典的语法索引就可以。如果我们想要标签里面的文字,就使用get_text方法。&/p&&p&这里我们仍然只是把结果print出来,在下一讲再说储存:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&from bs4 import BeautifulSoup
def parseHTML(html):
soup = BeautifulSoup(html,'html.parser')
body = soup.body
company_middle = body.find('div',attrs={'class':'middle'})
company_list_ct = company_middle.find('div',attrs={'class':'list-ct'})
for company_ul in company_list_ct.find_all('ul',attrs={'class':'company-list'}):
for company_li in company_ul.find_all('li'):
company_url = company_li.a['href']
company_info = company_li.get_text()
print company_info,company_url
&/code&&/pre&&/div&&p&我们把上面的函数拼到一起:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&URL = '.cn/cninfo-new/information/companylist'
html = getHTML(URL)
parseHTML(html)
&/code&&/pre&&/div&&p&运行结果:&/p&&img src=&/cad5ad1e2bb8dfb22c9a20_b.png& data-rawwidth=&685& data-rawheight=&724& class=&origin_image zh-lightbox-thumb& width=&685& data-original=&/cad5ad1e2bb8dfb22c9a20_r.png&&&p&更多bs4用法,请戳官方文档:&a href=&/?target=https%3A///software/BeautifulSoup/bs4/doc.zh/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Beautiful Soup 4.2.0 文档&i class=&icon-external&&&/i&&/a&&/p&&br&&h2&三、完整代码示例&/h2&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&import requests
from bs4 import BeautifulSoup
def getHTML(url):
r = requests.get(url)
return r.content
def parseHTML(html):
soup = BeautifulSoup(html,'html.parser')
body = soup.body
company_middle = body.find('div',attrs={'class':'middle'})
company_list_ct = company_middle.find('div',attrs={'class':'list-ct'})
for company_ul in company_list_ct.find_all('ul',attrs={'class':'company-list'}):
for company_li in company_ul.find_all('li'):
company_url = company_li.a['href']
company_info = company_li.get_text()
print company_info,company_url
URL = '.cn/cninfo-new/information/companylist'
html = getHTML(URL)
parseHTML(html)
&/code&&/pre&&/div&&br&&p&------------------------萌萌哒的分割线------------------------&br&&/p&&br&&p&非商业转载注明作者即可,商业转载请联系作者授权并支付稿费。本专栏已授权“维权骑士”网站(&a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&)对我在知乎发布文章的版权侵权行为进行追究与维权。&/p&&br&&p&项目联系方式:&/p&&ul&&li&项目邮箱(&a class=&member_mention& href=&/people/7be7dd0db8c5fd& data-editable=&true& data-title=&@iGuo& data-hovercard=&p$b$7be7dd0db8c5fd& data-hash=&7be7dd0db8c5fd&&@iGuo&/a& 的邮箱):&/li&&li&项目网站:&a href=&/?target=http%3A//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&/&i class=&icon-external&&&/i&&/a&(修复中)&/li&&li&项目GitHub:&a href=&/?target=https%3A///xmucpp& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&China's Prices Project at Xiamen Univerisity (CPP@XMU)&i class=&icon-external&&&/i&&/a&&/li&&li&项目专栏:&a href=&/xmucpp& class=&internal&&China's Prices Project - 知乎专栏&/a&&/li&&li&项目知乎账户:&a href=&/people/865c399ef3eaca587deae& data-hash=&865c399ef3eaca587deae& class=&member_mention& data-editable=&true& data-title=&@CPP& data-hovercard=&p$b$865c399ef3eaca587deae&&@CPP&/a&&/li&&li&项目公众号:xmucpp2016(XMUCPP)&/li&&/ul&
系列专栏目录: 第一讲:第二讲:第三讲:第四讲: ------------------------…
&p&作者:&a href=&/people/fd7c571a0ada1a72e42e8d& class=&internal&&@萧井陌&/a&, &a href=&/people/d2facf05b31ad4& class=&internal&&@Badger&/a&&/p&&ul&&li&自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0&/li&&li&&a href=&/?target=http%3A//cocode.cc/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CoCode&i class=&icon-external&&&/i&&/a&:一个让大家学习、成长、相聚并获得乐趣的技术社区&/li&&li&答疑邮箱: xiao. (&a href=&/people/fd7c571a0ada1a72e42e8d& class=&internal&&@萧井陌&/a&&/li&&li&编程入门指南学习群:&a href=&/?target=https%3A///%3F_wv%3DD4AoJu1a& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&&i class=&icon-external&&&/i&&/a&&/li&&/ul&&p&---&/p&&br&&p&日 v1.5 更新&/p&&p&日 v1.4 更新&/p&&p&日 v1.3 更新&/p&&p&日 v1.2 更新&/p&&p&日 v1.1 更新&/p&

我要回帖

更多关于 二战风云重装版顽石版 的文章

 

随机推荐