前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你用用Python爬取上道网的赞助公司名称

手把手教你用用Python爬取上道网的赞助公司名称

作者头像
前端皮皮
发布2021-01-22 09:55:12
3450
发布2021-01-22 09:55:12
举报
文章被收录于专栏:前端进阶学习交流

一、前言

上道网是一个手游发行推荐与投融资交易平台。平台聚集手游CP、手游发行、手游渠道、手游外包,投资商以及IP授权商,IP合作、一站式服务。并为之提供合作交易机会。

今天教如何去爬取上道网的赞助公司名称,方便有关人士投资。

二、实现目标

获取对应的公司名称,保存文档。

三、项目准备

软件:PyCharm

需要的库:requests,fake_useragent,time

网址:http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-{}.html

四、项目分析

如何网页访问?

http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-1.html

http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-2.html

http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-3.html

http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-4.html

点击下一页时,每增加一页p-{}.html自增加1,用{}代替变换的变量,再用for循环遍历这网址,实现多个网址请求。

五、项目实现

1. 定义一个class类继承object,定义init方法继承self,主函数main继承self。导入需要的库、请求地址。
代码语言:javascript
复制
import requests
from lxml import etree
from fake_useragent import UserAgent
import time

class Shangdao(object):
    def __init__(self):
        self.url = "http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-{}.html"  #网站
    def main(self):
        pass

if __name__ == '__main__':
    Siper = Shangdao()
    Siper.main()
2. 随机产生UserAgent,防止反爬。
代码语言:javascript
复制
for i in range(1, 50):
            self.headers = {
                'User-Agent': ua.random,
            }
3. 发送请求 获取响应, 页面回调,方便下次请求。
代码语言:javascript
复制
   def get_page(self, url):
        res = requests.get(url=url, headers=self.headers)
        html = res.content.decode("utf-8")
        return html
4. 获取公司名称,for遍历。
代码语言:javascript
复制
   def page_page(self, html):
        parse_html = etree.HTML(html)
        one = parse_html.xpath('//h2/a/text()')
        for i in one:
            print(i)
5. 写入文档。
代码语言:javascript
复制
           f = open('公司.doc', 'a', encoding='utf-8')  # 以'w'方式打开文件
            f.write(str(i))
6. 调用方法,实现功能。
代码语言:javascript
复制
   def main(self):
        stat = int(input("输 入 开 始 (2开始):"))
        end = int(input("输 入 结 束:"))
        for page in range(stat, end + 1):
            url = self.url.format(page)
            print(url)
            html = self.get_page(url)
            self.page_page(html)
            print("==================第%s页爬取成功!!!!=====================" % page)

项目优化:

1. 设置时间延时。
代码语言:javascript
复制
time.sleep(1.4)

六、效果展示

点击绿色小三角运行输入起始页,终止页( 从0页开始 )。

渠道公司名,结果显示控制台。

保存文档。

七、总结

1. 不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。
2. 希望通过这个项目,能够帮助了解xpath解析页面的基本流程,字符串是如何拼接,format函数如何运用。
3. 本文基于Python网络爬虫,利用爬虫库,实现爬取上道网,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

4. 需要本文完整代码的小伙伴,可以后台回复"上道"二字进行获取。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、实现目标
  • 三、项目准备
  • 四、项目分析
    • 如何网页访问?
    • 五、项目实现
      • 1. 定义一个class类继承object,定义init方法继承self,主函数main继承self。导入需要的库、请求地址。
        • 2. 随机产生UserAgent,防止反爬。
          • 3. 发送请求 获取响应, 页面回调,方便下次请求。
            • 4. 获取公司名称,for遍历。
              • 5. 写入文档。
                • 6. 调用方法,实现功能。
                  • 项目优化:
                  • 六、效果展示
                  • 七、总结
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档