这里本科生一枚。。做本研要求抓取一些数据碰到了一些问题求指教> <
我想要抓取汽车之家上关于供应商的一些数据,然后在车型详情页里找到了关于供应商的框架源代码如下(只截取有用部分):
<br> //属性<br> document.domain = "autohome.com.cn";<br> var page=1;<br> var parameters = {<br> isPage:0,<br> pageCount:0,<br> kindId:-1,<br> vId:23867,<br> pId: 110000,<br> cId: 110100,<br> sId: 0,<br> cityUrl: '/frame/cms/GetProvinceCityList?SpecId=23867&SeriesId=0&roid1=2',<br> url: "/frame/spec/{vId}/{pId}/{cId}/{sId}/{orderType}/{pageIndex}/{pageSize}?isPage={isPage}&seriesId={seriesId}&source={source}&kindId={kindId}" ,<br> kindUrl:"/frame/cms/GetKindBySpec?specId={vId}&provinceId={pId}&cityId={cId}&countyId={sId}",<br> panel:"#dealer-box",<br> pageSize:5,<br> pageIndex: 1,<br> orderType :0,<br> seriesId:66,<br> source:"defalut"<br> };</p> <pre><code> $("[name='orderBy']").click(function() { parameters.orderType = $(this).attr('data-order'); $("#orderCan .current").attr("class", "linkname"); $(this).attr("class", "linkname current"); //parameters.pageIndex = 1; var firstPage = $("#dealerListPager a[data=1]").eq(0); if (firstPage.length == 1) { firstPage.click(); } else { load(); } return false; }); seajs.config({version:"1460100712877"}); var $$; seajs.use(['jquery','pop'], function ($) { $$=$; }); $(function(){ jQuery("#orderCan a").each(function(){ if($(this).attr("data-order")==parameters.orderType) { $("#orderCan .current").attr("class","linkname"); $(this).attr("class","linkname current"); } }) }) </script> <script type="text/javascript" src="http://x.autoimg.cn/dealer/bbs/js/DealerArea20160413.js?t=2016041421"></script> </code></pre> <p>里面包含的信息应该怎么抓取呢?我是通过selenium来进入网页的框架,这些js应该怎么解析?我尝试着用前面的那些parameter凑出来URL,但是输入到浏览器中就会跳转到汽这个网站的首页,用urllib2打开的话会报错Error 10060,但是网什么的也都没有问题,是我的IP被封了还是需要一个什么特殊的代理??</p> <p>本科期间只学过python的两门课,对java没什么了解,求帮助呀QAQ谢谢大家啦</p>
一般的爬虫都无法爬取js生成的动态数据,我最近使用的是神箭手云爬虫,他们自带js渲染,在爬取动态网页这块做得是最好的了,你可以试试:http://www.shenjianshou.cn/