• Python 爬虫


    爬虫的起步,先利用request模块来写个百度接口的调用

    import requests
    url_pre = 'http://api.map.baidu.com/location/ip'
    ak = 'QspXzwz6rO3IviR33HDf8Czv05pR7XoT'
    ip = raw_input('input your ip: ')

    url = '%s?ak=%s&ip=%s'%(url_pre,ak,ip)

    res = requests.get(url)
    print res.json()['content']['address']

    用来获取ip的定位

    下面来爬一下豆瓣top250

    import requests
    from pyquery import PyQuery as pq

    url = 'https://movie.douban.com/top250'
    page_content = requests.get(url).text         #获取页面的代码,相当于邮件查看源代码

    for info in pq(page_content).find('.item'):   #找到class为item,他是包含电影名字和评分的最小块,如图1
        print pq(info).find('.title').html()      #找包含电影名字的class
        print pq(info).find('.rating_num').html() #找包含电影评分的class

    运行结果:

    肖申克的救赎
    9.6
    霸王别姬
    9.5
    这个杀手不太冷
    9.4
    阿甘正传
    9.4
    美丽人生
    9.5
    千与千寻
    9.2
    辛德勒的名单
    9.4
    泰坦尼克号
    9.2
    盗梦空间
    9.2
    机器人总动员
    9.3
    海上钢琴师
    9.2

    ......

    图解1:

        

     再来个例子:

    12 url = 'https://movie.douban.com/chart'
    13
    14 page_content = requests.get(url).text
    15 for info in pq(page_content).find('.item'):
    16 print pq(info).find('.pl2').find('a').text().replace(' ','').split('/')[0]

     #这里如果用find('a').html()   会把span的内容也显示出来,用text则会过滤掉这已部分。

    已面向对象的方式来改写

    import requests
    from pyquery import PyQuery as pq

    #url = 'https://movie.douban.com/top250'
    #page_content = requests.get(url).text
    #
    #for info in pq(page_content).find('.item'):
    # print pq(info).find('.title').html()
    # print pq(info).find('.rating_num').html()


    #url = 'https://movie.douban.com/chart'

    #page_content = requests.get(url).text
    #for info in pq(page_content).find('.item'):
    # print pq(info).find('.pl2').find('a').text().replace(' ','').split('/')[0]

    class DoBan:
      def __init__(self,num):
         self.num = num
         self.url = 'https://movie.douban.com/top250?start=%s'


      def get_start_url(self):
         return range(0,self.num,25)

      def download(self,url):
         content = requests.get(url).text
         self.parse(content)


      def parse(self,content):
         for info in pq(content).find('.item'):
         tmp = pq(info)
         print tmp.find('.title').html()
         print ' '*4,tmp.find('.rating_num').html(),tmp.find('.inq').html()


      def start(self):
         for start in self.get_start_url():
         url = self.url%(start)
         self.download(url)


    db = DoBan(100)
    db.start()

  • 相关阅读:
    WebService安全 文件夹 目录安全性 身份验证与访问控制
    爱情故事[转载自:学狼网]
    未来中国最受宠的人才
    [引]SQL Server : 系统存储过程
    VS 安装项目 :通过文本框得到用户输入 以及 安装后运行某程序(如打开C:\\a.html)
    人人都能成为百万富翁
    成功原来这样简单
    精典谚语
    利用WinForm 更好的实现Web安装程序的更多功能
    升级安装包的制作
  • 原文地址:https://www.cnblogs.com/nopnog/p/7156017.html
Copyright © 2020-2023  润新知