51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师论坛测试积点免费获取渠道攻略【长期招募】博为峰网校招聘兼职讲师!横扫BAT,Python全栈测试开发技能大全
【109期】:python爬虫的魔力 !2020不玩虚的,先来一波技术PK! 【专题】用尽一切办法只为让你学好用例 自学软件测试那点事
查看: 4021|回复: 55

【你来问我来答第109期】:python爬虫的魔力 !

[复制链接]
  • TA的每日心情
    慵懒
    2019-12-16 16:08
  • 签到天数: 497 天

    连续签到: 1 天

    [LV.9]测试副司令

    发表于 2019-12-2 13:45:59 | 显示全部楼层 |阅读模式

           随着信息时代的发展,数据的重要性越来越凸显。爬虫就是获取数据最高效,性价比最高的方法。互联网公司也越来越重视爬虫,而爬虫工程师的待遇也越来越高。起薪基本都在一万以上。爬虫是一种对知识广度要求很高的技术,既要懂基本的开发语言,又要熟悉网站知识,还要熟悉各种数据库存储。 老师有超过十年的开发经验,其中爬虫领域有超过八年的经验,对这个行业非常精通,算得上这个领域的专家,用各种语言(Python,Java,PHP)开发过爬虫,还自己开发了几套爬虫框架。对搜索和网站开发也很擅长。
    论坛ID:JohnnySheng
    现任职位:爬虫技术负责人/架构师

    嘉宾作品:大神教你写爬虫-从入门到精通
    项目经验:知名上市公司的爬虫架构师,曾在数家公司担任数据负责人和爬虫架构师的职责。超过十年开发经验,精通爬虫,搜索,网站开发领域,开发语言精通Python,Java,PHP。曾经用不同开发语言写过几个爬虫框架。课程中基础和高级应用并重,由浅入深,有多个项目实例,有多种开发语言(Python,Java,PHP)框架的讲解和实战演示。


    各位会员可以在12月10日前以回帖的方式向客座专家提问。
    (请大家围绕本期客座专家的擅长领域进行提问、探讨)
    客座专家将在12月11日—12月31日为大家集中解答。

    机会难得,欢迎大家踊跃提问!


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-16 16:08
  • 签到天数: 497 天

    连续签到: 1 天

    [LV.9]测试副司令

     楼主| 发表于 2019-12-2 14:17:10 | 显示全部楼层
    欢迎大家提问,本期关于python爬虫的主题问答。希望大家踊跃提问。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-12-5 12:30
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]测试连长

    发表于 2019-12-2 18:22:36 | 显示全部楼层
    老师请问,有许多爬虫现在在窃取个人信息,国家也在出台相关法律。爬虫技术有没有什么重要的法律红线?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-2 20:39:11 | 显示全部楼层
    交感2019 发表于 2019-12-2 18:22
    老师请问,有许多爬虫现在在窃取个人信息,国家也在出台相关法律。爬虫技术有没有什么重要的法律红线?

    你这是个好问题,最近爬虫行业各种动荡,但是大家大可不必担忧,受到打击的只是不合规的那些,主要是涉及到个人信息方面的。
    爬虫只是一种工具,搜索引擎的底层就是爬虫和搜索,所以爬虫不是违法的,主要看怎么用。
    一个很重要的注意点,就是不要涉及个人信息,还有规避有明确版权的数据。
    详情可以看我的课程,在爬虫基本概念和就业指导章节我都着重进行了讲解,我的个人博客中也进行了讲解。
    课程:http://www.atstudy.com/my/course/1999
    博客:对于最近爬虫行业一些动荡事件的思考,http://www.crawler.im/post/18
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 09:54
  • 签到天数: 122 天

    连续签到: 2 天

    [LV.7]测试师长

    发表于 2019-12-3 13:50:12 | 显示全部楼层
    老师,请问,可以推荐一下,爬虫的基础框架不,在自学。感觉很多时候,找不到方向。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-4 11:03:01 | 显示全部楼层
    目标,远方 发表于 2019-12-3 13:50
    老师,请问,可以推荐一下,爬虫的基础框架不,在自学。感觉很多时候,找不到方向。

    #框架:
    PHP:
      PHPSpider:强大极其灵活,配置形式,基本上可以用配置解决所有问题

    .NET:
      DotnetSpider:参照WebMagic,强大,灵活

    Python:
      Scrapy:元老级别,强大,周边插件强大,应用广。但是也有不足(单进程只能运行单个爬虫任务),常用的的redis插件有缺陷
      PySpider:玩具,适合非专业爬虫人员,不稳定

    Java:
      Nutch:元老级,适合搜索引擎,比较繁重,可定制化不强,不推荐
      WebMagic:参照Scrapy,但是青出于蓝而胜于蓝。强大,灵活,原生支持分布式,自带的redis队列很不错,可以实现单进程多任务,强烈推荐!!!!!
      Crawler4j:不错的框架,采用的是BerkeleyDB 进行url的过滤。不支持分布式采集,但是可以通过使用redis队列实现分布式,但是开源的redis队列有缺陷,慎用!
      WebCollector:国人开发,功能不错,但是不同版本兼容性不好,可修改空间不大

    这些在老师的课程中都有详细的讲解和案例:http://www.atstudy.com/my/course/1999
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 09:54
  • 签到天数: 122 天

    连续签到: 2 天

    [LV.7]测试师长

    发表于 2019-12-5 14:33:16 | 显示全部楼层
    JohnnySheng 发表于 2019-12-4 11:03
    #框架:
    PHP:
      PHPSpider:强大极其灵活,配置形式,基本上可以用配置解决所有问题

    感谢,老师回复
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    昨天 09:54
  • 签到天数: 122 天

    连续签到: 2 天

    [LV.7]测试师长

    发表于 2019-12-5 14:33:26 | 显示全部楼层
    JohnnySheng 发表于 2019-12-4 11:03
    #框架:
    PHP:
      PHPSpider:强大极其灵活,配置形式,基本上可以用配置解决所有问题

    感谢,老师回复
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-13 16:56:40 | 显示全部楼层
    老师,我想提问下,python爬虫可以用.net的界面来交互吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-13 17:04:23 | 显示全部楼层
    JohnnySheng 发表于 2019-12-2 20:39
    你这是个好问题,最近爬虫行业各种动荡,但是大家大可不必担忧,受到打击的只是不合规的那些,主要是涉及 ...

    求指教!! 爬取天眼查数据的时候,脚本运行一段时间,就会被天眼查的反爬取搞出来。怎么能躲过这个检测爬虫脚本执行一段时间以后,后续就会报错。
    手动访问天眼查页面,发现页面提示确认是否是机器人。请大神指导怎么能躲过反爬取检测。

    问题:
    目前不太清楚天眼查是根据IP,还是根据cookie来做的反爬取限制。
    尝试过的操作:
    1、延长每次请求的时间,设置为3s中爬取一次,结果中途也断了。
    2、将请求的时间设置为随机时间在0~5s之内,结果也中途断了。




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-13 17:09:05 | 显示全部楼层
    1. r = s.get(city_url, headers=my_heads, proxies=params_file.proxies)
    复制代码
    增加了IP地址池,IP地址数据如下(购买的IP数据):
    1. proxies = {
    2. "https":"https://112.87.71.162:9999",
    3. "https":"https://125.123.139.163:9999",
    4. "https":"https://116.209.55.229:9999",
    5. "https":"https://104.248.99.101:3128",
    6. "https":"https://116.209.52.240:9999",
    7. "https":"https://116.192.171.51:31742",
    8. "https":"https://113.121.146.70:9999",
    9. "https": "https://112.85.129.166:9999",
    10. "https": "https://1.10.188.100:59164",
    11. }
    复制代码
    结果页面有报错:接口返回值为403

    目前陷入了停滞状态,我尝试过去掉地址池,页面访问正常
    所以有点尴尬,去掉地址池,爬一段时间,就要被封。用了地址池,程序跑不起来

    hreader 信息:


    新的问题。
    使用IP代理之后,发现爬一段时间,账号依然会被封。不知道什么原因?
    是因为一直使用一个cookie吗?这么搞的话,是不是得使用多个账号交替去爬?

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-16 14:15:02 | 显示全部楼层
    df_1989 发表于 2019-12-13 16:56
    老师,我想提问下,python爬虫可以用.net的界面来交互吗?

    可以的,通过http接口或者数据库或者配置文件,然后爬虫中读取数据库或者配置
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-16 14:16:43 | 显示全部楼层
    star78 发表于 2019-12-13 17:09
    增加了IP地址池,IP地址数据如下(购买的IP数据):
    结果页面有报错:接口返回值为403

    Cookie要经常更换,一般多线程多账号,代理也有时效性,还有就是你的代理数量比较少,一般都是几百的级别
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-16 14:18:58 | 显示全部楼层
    star78 发表于 2019-12-13 17:04
    求指教!! 爬取天眼查数据的时候,脚本运行一段时间,就会被天眼查的反爬取搞出来。怎么能躲过这个检测 ...

    一般是多种策略,检测ip,检测cookie,检测时间间隔,所以要有有效的代理池,并且经常更换的,还有就是单个线程的时间间隔控制好,cookie也不要一直用一个,经常更换或者动态生成。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-16 15:41:11 | 显示全部楼层
    JohnnySheng 发表于 2019-12-16 14:16
    Cookie要经常更换,一般多线程多账号,代理也有时效性,还有就是你的代理数量比较少,一般都是几百的级别

    感谢您的回复,虽然还不是太明白。不过至少有一些头绪了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-16 15:43:17 | 显示全部楼层
    JohnnySheng 发表于 2019-12-16 14:15
    可以的,通过http接口或者数据库或者配置文件,然后爬虫中读取数据库或者配置

    好的 谢谢老师。请问下您这边有相关的资料吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-16 16:00:23 | 显示全部楼层
    在编写静态网页爬虫,检查元素时发现在标签里面href所指的链接不全怎么办
    实际的网页url时这样的http://www.mof.gov.cn/xinwenlian ... 0190128_3134160.htm
    但是在网页上是这样的《a href = ../../xinwenlianbo/shanxicaizhengxinxilianbo/201901/t20190128_3134160.htm》 ABCD 《a》
    里面为什么会出现那两个杠杠和点点呀?要怎么补全呢?有很多的链接都是这个样子,出现了杠杠和点点,前面的部分还不太一样,这种情况要怎么处理呢?求指教!
    上面是尖括号,因为尖括号敲上去之后不显示标签对里面的信息,不得已改成了书名号=。=
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-4-13 15:48
  • 签到天数: 290 天

    连续签到: 1 天

    [LV.8]测试军长

    发表于 2019-12-16 16:05:23 | 显示全部楼层
    领导说要做个爬虫来获取信息,要求给的很笼统,主要就是获取最新及时不定向的数据,并且还是动态的,这个需求我改怎么做?请帮忙解答下,谢谢~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-16 17:28:29 | 显示全部楼层
    monkeytest15 发表于 2019-12-16 16:00
    在编写静态网页爬虫,检查元素时发现在标签里面href所指的链接不全怎么办
    实际的网页url时这样的http://ww ...

    ../是父级目录的意思吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-12-17 10:11:52 | 显示全部楼层
    你好,想问下写爬虫是用多进程好?还是多线程好? 为什么?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2020-1-21 00:10 , Processed in 0.076732 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2020 Comsenz Inc.

    快速回复 返回顶部 返回列表