訂閱
糾錯(cuò)
加入自媒體

如何用Python爬取上道網(wǎng)的贊助公司名稱(chēng)?

一、前言

上道網(wǎng)是一個(gè)手游發(fā)行推薦與投融資交易平臺(tái)。平臺(tái)聚集手游CP、手游發(fā)行、手游渠道、手游外包,投資商以及IP授權(quán)商,IP合作、一站式服務(wù)。并為之提供合作交易機(jī)會(huì)。

今天教如何去爬取上道網(wǎng)的贊助公司名稱(chēng),方便有關(guān)人士投資。

二、實(shí)現(xiàn)目標(biāo)

獲取對(duì)應(yīng)的公司名稱(chēng),保存文檔。

三、項(xiàng)目準(zhǔn)備

軟件:PyCharm

需要的庫(kù):requests,fake_useragent,time

網(wǎng)址:http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-{}.html

四、項(xiàng)目分析  如何網(wǎng)頁(yè)訪問(wèn)?

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

點(diǎn)擊下一頁(yè)時(shí),每增加一頁(yè)p-{}.html自增加1,用{}代替變換的變量,再用for循環(huán)遍歷這網(wǎng)址,實(shí)現(xiàn)多個(gè)網(wǎng)址請(qǐng)求。

五、項(xiàng)目實(shí)現(xiàn)

1. 定義一個(gè)class類(lèi)繼承object,定義init方法繼承self,主函數(shù)main繼承self。導(dǎo)入需要的庫(kù)、請(qǐng)求地址。import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport time
class Shangdao(object):    def __init__(self):        self.url = "http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-{}.html"  #網(wǎng)站    def main(self):        pass
if __name__ == '__main__':    Siper = Shangdao()    Siper.main()2. 隨機(jī)產(chǎn)生UserAgent,防止反爬。for i in range(1, 50):            self.headers = {                'User-Agent': ua.random,            }3. 發(fā)送請(qǐng)求  獲取響應(yīng), 頁(yè)面回調(diào),方便下次請(qǐng)求。
  def get_page(self, url):        res = requests.get(url=url, headers=self.headers)        html = res.content.decode("utf-8")        return html4. 獲取公司名稱(chēng),for遍歷。
  def page_page(self, html):        parse_h(yuǎn)tml = etree.HTML(html)        one = parse_h(yuǎn)tml.xpath('//h2/a/text()')        for i in one:            print(i)5. 寫(xiě)入文檔。
          f = open('公司.doc', 'a', encoding='utf-8')  # 以'w'方式打開(kāi)文件            f.write(str(i))6. 調(diào)用方法,實(shí)現(xiàn)功能。
  def main(self):        stat = int(input("輸 入 開(kāi) 始 (2開(kāi)始):"))        end = int(input("輸 入 結(jié) 束:"))        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頁(yè)爬取成功。。。。剑剑剑剑剑剑剑剑剑剑剑剑剑剑剑剑剑剑剑剑剑 % page)項(xiàng)目?jī)?yōu)化:

1. 設(shè)置時(shí)間延時(shí)。time.sleep(1.4)

六、效果展示

點(diǎn)擊綠色小三角運(yùn)行輸入起始頁(yè),終止頁(yè)(  從0頁(yè)開(kāi)始 )。

渠道公司名,結(jié)果顯示控制臺(tái)。


保存文檔。

七、總結(jié)

1. 不建議抓取太多數(shù)據(jù),容易對(duì)服務(wù)器造成負(fù)載,淺嘗輒止即可。2. 希望通過(guò)這個(gè)項(xiàng)目,能夠幫助了解xpath解析頁(yè)面的基本流程,字符串是如何拼接,format函數(shù)如何運(yùn)用。3. 本文基于Python網(wǎng)絡(luò)爬蟲(chóng),利用爬蟲(chóng)庫(kù),實(shí)現(xiàn)爬取上道網(wǎng),但是到自己動(dòng)手實(shí)現(xiàn)的時(shí)候,總會(huì)有各種各樣的問(wèn)題,切勿眼高手低,勤動(dòng)手,才可以理解的更加深刻。

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)