写代码,知乎也可以解决一些问题!
具体情况
需要爬一页面上的所有商品信息,每一个商品打开后是一个新的网页,需要的信息就在这个网页上,因此整体思路是:
- 先把这个有多个商品的网页上的每个链接爬下来;
- 在每个链接上把需要的信息爬下来。
- 循环爬每个具体商品信息的链接
遇到的问题
爬链接的时候,需要对链接做统一处理,但是发现同一类商品的信息的跳转链接大不一样,于是发现有的链接点开之后又进行了跳转,最终的链接正是需要的链接,如何获取最终的链接就是问题的关键。
获取
其实是个很简单的方法, 用的还是requests
,还是要多看官方文档…..
原链接:
http://jump.zhineng.58.com/jump?target=pZwY0jCfsvFJsWN3shPfUiqkpyOMmh78uA-6UhO6Uzt1njEvrHTYnWcYPWTvrg980v6YUykKnHTOPWNknjnQnHbLrHN3PWD1PHNzPWEYP1TYTHEvP1m3rjDdPjm3n1TdTED1njEvrHTYnWcYPWTvrED3nTD3nTDzn1TOPTDQTHDdnHT1njE1PWnvrHcKnE7_pgPYUARhITDQTHDKugF1pAqdIAIxnWTQP1TOnjwxug6kxjD_UvuhUA-8uRqbmgw6g1cknH0krHcvxjDKsHDKTHTKnTDKnEDzPHEdujnzuaY1nAu6sHE1PyEVry7hnad6mvDYnh7WPWNYn1nKn1EvP19dn1NKnWcYP1m3rjcYPj0YrjbvTEDzn1TOPTDQTHT8PjNdnHb3nW9Ln1TQnW9OnWNKTiYKTE7CIZwkrBtfmhC8PH98mvqVsLKBuA3fnitKTHDknz3YPz3znHE8nWEvTHTKnTDKn19YrjEKXLYKPvndn1I-ryDLmH0OPhNOnT&psid=109650031197958613552644704&entinfo=30469042246069_0
import requests
a = http://jump.zhineng.58.com/jump?target=pZwY0jCfsvFJsWN3shPfUiqkpyOMmh78uA-6UhO6Uzt1njEvrHTYnWcYPWTvrg980v6YUykKnHTOPWNknjnQnHbLrHN3PWD1PHNzPWEYP1TYTHEvP1m3rjDdPjm3n1TdTED1njEvrHTYnWcYPWTvrED3nTD3nTDzn1TOPTDQTHDdnHT1njE1PWnvrHcKnE7_pgPYUARhITDQTHDKugF1pAqdIAIxnWTQP1TOnjwxug6kxjD_UvuhUA-8uRqbmgw6g1cknH0krHcvxjDKsHDKTHTKnTDKnEDzPHEdujnzuaY1nAu6sHE1PyEVry7hnad6mvDYnh7WPWNYn1nKn1EvP19dn1NKnWcYP1m3rjcYPj0YrjbvTEDzn1TOPTDQTHT8PjNdnHb3nW9Ln1TQnW9OnWNKTiYKTE7CIZwkrBtfmhC8PH98mvqVsLKBuA3fnitKTHDknz3YPz3znHE8nWEvTHTKnTDKn19YrjEKXLYKPvndn1I-ryDLmH0OPhNOnT&psid=109650031197958613552644704&entinfo=30469042246069_0
result = requests.head(a)
b = result.headers['location']
print(b)
结果是:
http://bj.58.com/pingbandiannao/30469042246069x.shtml?adtype=1&psid=109650031197958613552644704&entinfo=30469042246069_0
得到了想要的url,后续工作可以开展了。
经验
多看文档,多看大神,遇到错误和问题就搜索,你肯定不是第一个遇到的。