Python 提取html代码下的信息

Python 提取html代码下的信息,python,html,web-crawler,Python,Html,Web Crawler,这是html代码: <div id="n_pnlJobResultsCount" class="jobresults_count"> 82 <span>Jobs Found</span> </div> 这使我的输出为126,但是我希望在html代码中提到的输出82以及在careerbuilder站点上显示的输出82使用Pythonurllib时,您尝试刮取的站点返回不同的结果集。如果打印html变量,您将看到源代码包含: <div

这是html代码:

<div id="n_pnlJobResultsCount" class="jobresults_count">
    82 <span>Jobs Found</span>
</div>

这使我的输出为126,但是我希望在html代码中提到的输出82以及在careerbuilder站点上显示的输出82使用Python
urllib
时,您尝试刮取的站点返回不同的结果集。如果打印
html
变量,您将看到源代码包含:

<div id="n_pnlJobResultsCount" class="jobresults_count">
    1 - 25 of 126 <span>Jobs Found</span>
</div>
符合

req = urllib2.Request(final_site, headers={ 'User-Agent': 'Mozilla/5.0' })
html = urllib2.urlopen(req).read()
在这种情况下,你也应该改变

job_numbers = re.findall('\d+', num_jobs_area)[2] 
排队

job_numbers = re.findall('\d+', num_jobs_area)[0] 

当使用Python
urllib
时,您试图清除的站点返回不同的结果集。如果打印
html
变量,您将看到源代码包含:

<div id="n_pnlJobResultsCount" class="jobresults_count">
    1 - 25 of 126 <span>Jobs Found</span>
</div>
符合

req = urllib2.Request(final_site, headers={ 'User-Agent': 'Mozilla/5.0' })
html = urllib2.urlopen(req).read()
在这种情况下,你也应该改变

job_numbers = re.findall('\d+', num_jobs_area)[2] 
排队

job_numbers = re.findall('\d+', num_jobs_area)[0] 

使用
urllib
时,您将收到不同的数据。它会收到如下结果:

<div id="n_pnlJobResultsCount" class="jobresults_count">
    1 - 25 of 126 <span>Jobs Found</span>
</div>
更改
urllib2使用的用户代理

您的
作业编号=
行也有一个小错误。第二个索引中没有元素。将行更改为该行可以解决问题并打印预期值

job_numbers = re.findall('\d+', num_jobs_area)[0]

使用
urllib
时,您将收到不同的数据。它会收到如下结果:

<div id="n_pnlJobResultsCount" class="jobresults_count">
    1 - 25 of 126 <span>Jobs Found</span>
</div>
更改
urllib2使用的用户代理

您的
作业编号=
行也有一个小错误。第二个索引中没有元素。将行更改为该行可以解决问题并打印预期值

job_numbers = re.findall('\d+', num_jobs_area)[0]

这不是一个真正的答案。你刚才在回答中提到了问题所在,但没有说明如何解决。请添加一个解决方案,让您的答案成为真实答案,或者删除它并发表评论。@KevinGuan没有解决方案,因为两种情况下的HTML都是正确的,只是不同而已。不过,我添加了一个变通方法,它将产生与真正的浏览器几乎相同的HTML。这就是我的意思。如果你不能给出一个解决方案,那么就不要发表答案,而是发表评论。谢谢你的编辑。非常感谢塞尔库克和凯文。这不是一个真正的答案。你刚才在回答中提到了问题所在,但没有说明如何解决。请添加一个解决方案,让您的答案成为真实答案,或者删除它并发表评论。@KevinGuan没有解决方案,因为两种情况下的HTML都是正确的,只是不同而已。不过,我添加了一个变通方法,它将产生与真正的浏览器几乎相同的HTML。这就是我的意思。如果你不能给出一个解决方案,那么就不要发表答案,而是发表评论。谢谢你的编辑。非常感谢塞尔库克和凯文。