麻瓜编程·python实战·第一周总结

  这周正式开始学习,今天星期四,前面三天都花了很多时间去敲代码。截止昨天,我完成了所有第一周的学习和作业,打算做一个小结,查缺以及预习。

一、爬虫知识

  1. 认识网页,几个最基础的标签:





    

  1. 再来是提取网页信息:

第一步:request.get(url)  # 获取网页
第二步:BeautifulSoup(第一步.txt, 'lxml')  # 解析网页
第三步:第二步.select('...')  # 根据提取词(见下)提取信息

select()返回的是列表,里面全是标签对象,标签有①get_text()的方法来获取文本;
②当有“多对一”的情况时(比如一个商品的标签可以有多个),对标签用.stripped_strings来获取多个文本,并可用list(标签.stripped_strings)来列表化;
③用:标签.get(class="src(举例)") 来获取属性信息。

  1. 关于find_all:

有个题目是获取“星级”,实心星星和空心星星对应不同属性的span标签,获取星级就是数父级标签下,共有多少个实心

麻瓜编程·python实战·第一周总结_第1张图片
Paste_Image.png

```python
products_stars = soup.select('.ratings')

.ratings的 . 代表class!

for rate in products_stars:
star = len(rate.find_all('span','glyphicon glyphicon-star'))

4. ####从网页中获取多个链接,然后挨个传入函数解析:
  这个其实挺好办的,从网页获取目标链接,然后撞到一个列表里面,然后迭代传入函数。有两点想要说明一下:
 - 或许这个并没有我想象的那么简单,之前看的书_web scrapy with python_ 里面用的不是列表是set(),而且有可能会需要对爬取到的链接做字符串处理,比如.split(' ')、切片等等。
 - 计数器:因为我希望在python运行的过程中明确看到进度,所以我在迭代列表时加入了print(  list.index(i)  ),可以看到现在跑的是第几个元素。但我坚信应该有更聪明的办法,只是我现在还不懂。
5. ####js隐藏图片真实地址:
  在爬取Taylor图片的时候,我遇到一个问题是,获取到的图片全部都是一样的名字。
![一个问题.png](http://upload-images.jianshu.io/upload_images/2595866-ba454f3b84253f85.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  应该说这个问题,仍然悬而未决,因为我没有在我爬取的源代码里面找到真实地址。

6. ####关于js的另一种情况:
  有一个小片段是:爬取58二手商家商品页面的“浏览量”,这个浏览量也是被js控制,当刷新网页是,最开始的浏览量是0,忽然画面跳了一下才变成了真正的浏览量。
  要获取真实的浏览量,要去chrome-检查-source,source里面有所有的动作(js),在里面找到想要的地址,然后运用到爬虫当中。
>关于怎么找这个地址,老师并没有讲清楚,我也只能用心感受。
>![Paste_Image.png](http://upload-images.jianshu.io/upload_images/2595866-8f2c31f02474e1f9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>怎么用这个地址的话,是这样的:
>![获取浏览量.png](http://upload-images.jianshu.io/upload_images/2595866-f0f0617fbfac373d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>先处理url,截取出那串数字,把数字用来组织api地址,解析api,处理api返回的结果(split……)

6. ####使用代理爬取数据
  在爬取58转转的时候,我的ip老是被屏蔽,说我MAX云云,于是我采用了[每爬取一次换一个代码的方法](https://mugglecoding.gitbooks.io/qa/content/ru_he_huo_qu_dai_li_ip.html),日后也应该会蛮长用到的。


> _好吧,总结的……差不多了_  
> 我的作业们:  
> [1-1作业:动手做网页][1]
> [1-2作业:爬取商品信息][2]
> [1-3作业:爬取租房信息][3]
> [1-4作业:爬取Taylor Swift][4]
> [1-5作业:爬58转转][5]

  [1]: http://www.jianshu.com/p/b2849ef74f00
  [2]: http://www.jianshu.com/p/9b94e7759ee0
  [3]: http://www.jianshu.com/p/9d589f0d9ba2
  [4]: http://www.jianshu.com/p/05f1486f8744
  [5]: http://www.jianshu.com/p/a740ce126974

你可能感兴趣的:(麻瓜编程·python实战·第一周总结)