Web爬网脚本在两台不同的计算机上产生不同的结果

破烂

我使用BeautifulSoup的API在Python中创建了一个网络爬虫。爬网某些站点时,网络爬虫使用相同的标头信息/用户代理。我注意到,当我在两台不同的计算机上运行相同的确切脚本(一个在笔记本电脑上,另一个在服务器上)以爬网给定站点时,它们会产生不同的结果结果。“不同的结果”是指在服务器上运行的脚本不会爬网到站点上的所有链接。

例如,如果我想对Macys.com进行爬网,则笔记本电脑上的脚本将爬网到每个部门(家庭,bedbath,妇女,男子等),而服务器上运行的脚本会错过bedbath部门。这真的使我感到困惑,因为它们都使用具有相同标头信息/用户代理的相同脚本来爬网相同的站点。我想不出其他任何可能导致这种情况的设置

这是我在python中定义用户代理并创建汤对象的方法

user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7"
hdr={'User-Agent':user_agent} 
response = urlopen(Request(current_url, headers=hdr))
html = response.read()
soup = BeautifulSoup(html, "lxml")
ec

如果您未明确指定解析器,BeautifulSoup 则会自动选择基础解析器

如果您不指定任何内容,则将获得已安装的最佳HTML解析器。Beautiful Soup将lxml的解析器评为最佳,然后是html5lib的解析器,然后是Python的内置解析器。

这里的问题是,它会根据python环境中可用/安装的模块在本地和服务器上选择不同的解析器。并且,由于解析器之间存在差异,因此您会看到不同的结果。

明确指定适合您需求的解析器​​,例如:

soup = BeautifulSoup(html, "lxml")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SSH进入同一网络中的两台不同的计算机

来自分类Dev

联网。不同局域网中两台计算机之间的连接

来自分类Dev

为什么两台计算机上的软件包安装顺序不同?

来自分类Dev

当运行相同的代码(例如Convert.ToDecimal(prm.Degeri).ToString())时,从两台不同的计算机上获得不同的结果

来自分类Dev

脚本在不同的计算机上返回不同的结果

来自分类Dev

脚本在不同的计算机上返回不同的结果

来自分类Dev

比较两台不同计算机上的两个相同文件夹,SSH问题

来自分类Dev

比较两台不同计算机上的两个相同文件夹,SSH问题

来自分类Dev

完全相同的代码(带有多线程)在两台不同的计算机上均不起作用

来自分类Dev

为什么Maven在两台计算机上以不同的方式运行同一pom?

来自分类Dev

完全相同的代码(具有多线程)在两台不同的计算机上均不起作用

来自分类Dev

在两台计算机上运行时,相同的 rmd 文件会创建不同的 Latex 文件

来自分类Dev

在两台计算机上运行游戏?

来自分类Dev

为什么wkhtmltopdf.exe在不同的Windows计算机上会产生不同的结果?

来自分类Dev

.NET Bitmap.Load方法在不同的计算机上产生不同的结果

来自分类Dev

为什么wkhtmltopdf.exe在不同的Windows计算机上会产生不同的结果?

来自分类Dev

将两台不同计算机上的两个预先存在的本地文件夹放入一个共享的在线存储库中

来自分类Dev

两台不同计算机上的两个本地用户可以使用SSH密钥进行身份验证而无需输入密码吗?

来自分类Dev

对于两台不同的计算机,是否使用相同的无线鼠标+键盘(Logitech Unifying)?

来自分类Dev

两台最新的Win10计算机运行不同的版本

来自分类Dev

设置Git以与两台不同的计算机一起工作

来自分类Dev

同一分支上的两台计算机不同步

来自分类Dev

C ++程序在不同的计算机上给出不同的结果

来自分类Dev

DecimalFormat在不同的计算机上导致两个不同的结果

来自分类Dev

Blockly - build.py 在不同的计算机上不会产生一致的结果

来自分类Dev

如何使用以太网电缆连接两台Ubuntu计算机

来自分类Dev

如何在两台计算机之间通过局域网发送文件

来自分类Dev

如何使用以太网电缆连接两台Ubuntu计算机

来自分类Dev

如何通过局域网在两台Linux计算机之间共享文件?

Related 相关文章

  1. 1

    SSH进入同一网络中的两台不同的计算机

  2. 2

    联网。不同局域网中两台计算机之间的连接

  3. 3

    为什么两台计算机上的软件包安装顺序不同?

  4. 4

    当运行相同的代码(例如Convert.ToDecimal(prm.Degeri).ToString())时,从两台不同的计算机上获得不同的结果

  5. 5

    脚本在不同的计算机上返回不同的结果

  6. 6

    脚本在不同的计算机上返回不同的结果

  7. 7

    比较两台不同计算机上的两个相同文件夹,SSH问题

  8. 8

    比较两台不同计算机上的两个相同文件夹,SSH问题

  9. 9

    完全相同的代码(带有多线程)在两台不同的计算机上均不起作用

  10. 10

    为什么Maven在两台计算机上以不同的方式运行同一pom?

  11. 11

    完全相同的代码(具有多线程)在两台不同的计算机上均不起作用

  12. 12

    在两台计算机上运行时,相同的 rmd 文件会创建不同的 Latex 文件

  13. 13

    在两台计算机上运行游戏?

  14. 14

    为什么wkhtmltopdf.exe在不同的Windows计算机上会产生不同的结果?

  15. 15

    .NET Bitmap.Load方法在不同的计算机上产生不同的结果

  16. 16

    为什么wkhtmltopdf.exe在不同的Windows计算机上会产生不同的结果?

  17. 17

    将两台不同计算机上的两个预先存在的本地文件夹放入一个共享的在线存储库中

  18. 18

    两台不同计算机上的两个本地用户可以使用SSH密钥进行身份验证而无需输入密码吗?

  19. 19

    对于两台不同的计算机,是否使用相同的无线鼠标+键盘(Logitech Unifying)?

  20. 20

    两台最新的Win10计算机运行不同的版本

  21. 21

    设置Git以与两台不同的计算机一起工作

  22. 22

    同一分支上的两台计算机不同步

  23. 23

    C ++程序在不同的计算机上给出不同的结果

  24. 24

    DecimalFormat在不同的计算机上导致两个不同的结果

  25. 25

    Blockly - build.py 在不同的计算机上不会产生一致的结果

  26. 26

    如何使用以太网电缆连接两台Ubuntu计算机

  27. 27

    如何在两台计算机之间通过局域网发送文件

  28. 28

    如何使用以太网电缆连接两台Ubuntu计算机

  29. 29

    如何通过局域网在两台Linux计算机之间共享文件?

热门标签

归档