我对Python(和web抓取)很陌生。让我问你一个问题。在
实际上,许多网站并不在Firefox或其他浏览器中报告其特定的url。例如,社会保险管理显示流行的婴儿名字和等级(从1880年开始),但当我把年份从1880年改为1881年时,网址没有改变。它是不断的
http://www.ssa.gov/cgi-bin/popularnames.cgi
因为我不知道具体的网址,我无法下载网页使用urllib。在
在此页面源中,它包括:
<input type="text" name="year" id="yob" size="4" value="1880">
所以假设,如果我能控制这个“年”值(比如“1881”或“1991”),我就可以处理这个问题。我说得对吗?我还是不知道怎么做。在
有谁能告诉我解决这个问题的办法吗?在
如果你知道一些有助于我学习的网站,请告诉我。在
谢谢!在
我建议使用mechanize之类的工具。这将允许您使用python以编程方式导航web页面。有很多关于如何使用这个的教程。基本上,你想在mechanize中做的和在浏览器中做的一样:填充文本框,点击“Go”按钮,解析你从响应中得到的网页。在
您仍然可以使用}。您可以发送相同的参数:
urllib
。该按钮执行对当前url的发布。使用Firefox的Firebug我查看了网络流量,发现它们发送了3个参数:member
,top
,和{现在,只需发送url编码的参数:
^{pr2}$如果您还需要发送邮件头:
在循环中执行代码:
我建议使用Scrapy。这是一个非常强大和易于使用的网页抓取工具。值得尝试的原因:
速度/性能/效率
数据库流水线
Scrapy具有
Item Pipelines
功能:因此,每一页都可以在下载后立即写入数据库。
代码组织
Scrapy为你提供了一个很好的清晰的项目结构,在那里你有设置,蜘蛛,项目,管道等逻辑分离。即便如此,你的代码也会更清晰、更易于支持和理解。
编码时间到了
Scrapy在幕后为你做了很多工作。这将使您专注于实际的代码和逻辑本身,而不是考虑“金属”部分:创建进程、线程等。
是的,你懂的-我喜欢。在
为了开始:
希望有帮助。在
相关问题 更多 >
编程相关推荐