立即注册  找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 496|回复: 9

感谢一下eqblog大佬,我也学会写爬虫了,哈哈哈

[复制链接]

感谢一下eqblog大佬,我也学会写爬虫了,哈哈哈

[复制链接]

82

主题

119

回帖

624

积分

高级会员

积分
624
流量之神

82

主题

119

回帖

624

积分

高级会员

积分
624
2018-6-3 23:53:59 | 显示全部楼层 |阅读模式
本帖最后由 流量之神 于 2018-6-4 01:08 编辑





水平还是很菜的,哈哈,不过爬虫跑起来了挺有意思,找了一个简单的网站练手http://www.mdyuepai.com/

[ol]
  • import re
  • import requests
  • import json
  • from multiprocessing import Pool
  • from requests.exceptions import RequestException
  • import os
  • from hashlib import md5
  • from multiprocessing import Pool
  • def get_page_index(offset):
  •     headers = {
  •         'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
  •     }
  •     url = 'http://www.mdyuepai.com/?page=' + str(offset)
  •     try:
  •         response = requests.get(url, headers = headers)
  •         if response.status_code == 200:
  •             return response.text
  •         return None
  •     except RequestException:
  •         print('请求索引页出错')
  •         return None
  • def parse_index_page(html):
  •     pattern = re.compile('', re.S)
  •     items = re.findall(pattern, html)
  •     for item in items:
  •         yield item
  • def get_page_detail(url):
  •     try:
  •         response = requests.get(url)
  •         if response.status_code == 200:
  •             return response.text
  •         return None
  •     except ConnectionError:
  •         print('Error occurred')
  •         return None
  • def save_image(content):
  •     file_path = '{0}/{1}.{2}'.format('/home/', md5(content).hexdigest(), 'jpg')
  •     print(file_path)
  •     if not os.path.exists(file_path):
  •         with open(file_path, 'wb') as f:
  •             f.write(content)
  •             f.close()
  • def download_image(url):
  •     print('Downloading', url)
  •     try:
  •         response = requests.get(url)
  •         if response.status_code == 200:
  •             save_image(response.content)
  •         return None
  •     except ConnectionError:
  •         return None
  • def parse_page_detail(html):
  •     pattern = re.compile('class="item_infor_img.*?src="(.*?)".*?', re.S)
  •     images = re.findall(pattern, html)
  •     for image in images:
  •         download_image(image)
  • def main():
  •     for offset in range(20):
  •         html = get_page_index(offset)
  •         for item in parse_index_page(html):
  •             url = 'http://www.mdyuepai.com/'+ item
  •             html2 = get_page_detail(url)
  •             images = parse_page_detail(html2)
  • if __name__ == '__main__':
  •     pool = Pool()
  •     pool.map(main())[/ol]复制代码
  • 回复

    使用道具 举报

    8

    主题

    353

    回帖

    1216

    积分

    金牌会员

    积分
    1216
    Mishaelre

    8

    主题

    353

    回帖

    1216

    积分

    金牌会员

    积分
    1216
    2018-6-3 23:54:49 | 显示全部楼层
    兔子大佬?
    回复

    使用道具 举报

    26

    主题

    203

    回帖

    624

    积分

    高级会员

    积分
    624
    a1438861827

    26

    主题

    203

    回帖

    624

    积分

    高级会员

    积分
    624
    2018-6-3 23:55:38 | 显示全部楼层
    膜拜

    回复

    使用道具 举报

    18

    主题

    552

    回帖

    1890

    积分

    金牌会员

    积分
    1890
    cdseoo

    18

    主题

    552

    回帖

    1890

    积分

    金牌会员

    积分
    1890
    2018-6-3 23:57:25 | 显示全部楼层
    被爬的,那个站页面打开有点慢~
    回复

    使用道具 举报

    328

    主题

    1462

    回帖

    6075

    积分

    论坛元老

    积分
    6075
    yugan300

    328

    主题

    1462

    回帖

    6075

    积分

    论坛元老

    积分
    6075
    2018-6-4 00:06:22 | 显示全部楼层
    约拍是什么路数?
    回复

    使用道具 举报

    82

    主题

    119

    回帖

    624

    积分

    高级会员

    积分
    624
    流量之神 楼主

    82

    主题

    119

    回帖

    624

    积分

    高级会员

    积分
    624
    2018-6-4 00:09:03 | 显示全部楼层

    Mishaelre 发表于 2018-6-3 23:54

    兔子大佬?

    什么兔子,他外号叫兔子吗
    回复

    使用道具 举报

    14

    主题

    167

    回帖

    506

    积分

    高级会员

    积分
    506
    TozFly

    14

    主题

    167

    回帖

    506

    积分

    高级会员

    积分
    506
    2018-6-3 23:54:00 | 显示全部楼层
    "

    花名胖兔子,因为他那个头像呀~
    回复

    使用道具 举报

    58

    主题

    300

    回帖

    1401

    积分

    金牌会员

    积分
    1401
    wenguonideshou

    58

    主题

    300

    回帖

    1401

    积分

    金牌会员

    积分
    1401
    2018-6-4 00:22:29 | 显示全部楼层
    在爬虫中多进程作用很小,要改成多线程
    回复

    使用道具 举报

    113

    主题

    543

    回帖

    2735

    积分

    金牌会员

    积分
    2735
    fei2018

    113

    主题

    543

    回帖

    2735

    积分

    金牌会员

    积分
    2735
    2018-6-4 00:09:00 | 显示全部楼层
    8楼说的对

    回复

    使用道具 举报

    46

    主题

    257

    回帖

    1144

    积分

    金牌会员

    积分
    1144
    身无分文的5毛钱

    46

    主题

    257

    回帖

    1144

    积分

    金牌会员

    积分
    1144
    2018-6-5 01:12:00 | 显示全部楼层
    刚打开你的帖子 我发现有只虫子在我屏幕上爬
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2025-1-31 22:54 , Processed in 0.025476 second(s), 2 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表