鱼C论坛

 找回密码
 立即注册
查看: 1495|回复: 4

求助一下这个爬虫不报错也没有任何结果 求大佬给我看看

[复制链接]
发表于 2022-6-12 15:39:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import time
import pandas as pd
import requests
import schedule
from lxml import etree

header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/101.0.4951.54 Safari/537.36 Edg/101.0.1210.39'}


def get_msg():
    print('I am working...')
    url = 'https://www.cgmodel.com/'
    page = requests.get(url, headers=header)
    tree = etree.HTML(page.text)
    msg_dic = {}
    for i in range(1, 11):
        name = tree.xpath('//ul[@class="sale_ranking"]/li[{}]/p/a'.format(i))[0].text
        price = tree.xpath('//ul[@class="sale_ranking"]/li[{}]/span'.format(i))[0].text
        msg_url = url + tree.xpath('//ul[@class="sale_ranking"]/li[{}]/p/a/@href'.format(i))[0]
        msg_page = requests.get(msg_url)
        msg_tree = etree.HTML(msg_page.text)
        tags = []
        a = 1
        while True:
            try:
                tags.append(msg_tree.xpath('//*[@id="modeldeals"]/div[2]/div/a[{}]'.format(a))[0].text)
            except:
                break
            else:
                a += 1
        msg_dic[name] = {'price': price, 'tags': tags}

    df = pd.DataFrame(msg_dic).transpose()
    df.to_csv('test.csv', mode='a+', encoding='utf-8', header=False)


# print(df)
schedule.every(30).minutes.do(get_msg)
while True:
    schedule.run_pending()
    time.sleep(1)
%5NJJJ_{MSO)KWM[XTAB(_G.png
K$`L@1GQ%KDV{P6HWJO}SO9.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-12 15:51:52 From FishC Mobile | 显示全部楼层
得看有没有反爬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-12 18:02:00 | 显示全部楼层
捕获.PNG
我这里可以正常相应
是不是你的IP被封了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-13 00:27:40 From FishC Mobile | 显示全部楼层
Lai013 发表于 2022-6-12 18:02
我这里可以正常相应
是不是你的IP被封了

你复制下你代码我看下喃
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-13 09:55:41 | 显示全部楼层
import time
import pandas as pd
import requests
import schedule
from lxml import etree

header = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/101.0.4951.54 Safari/537.36 Edg/101.0.1210.39'}


def get_msg():
    print('I am working...')
    url = 'https://www.cgmodel.com/'
    page = requests.get(url, headers=header)
    tree = etree.HTML(page.text)
    msg_dic = {}
    for i in range(1, 11):
        name = tree.xpath('//ul[@class="sale_ranking"]/li[{}]/p/a'.format(i))[0].text
        price = tree.xpath('//ul[@class="sale_ranking"]/li[{}]/span'.format(i))[0].text
        msg_url = url + tree.xpath('//ul[@class="sale_ranking"]/li[{}]/p/a/@href'.format(i))[0]
        msg_page = requests.get(msg_url)
        msg_tree = etree.HTML(msg_page.text)
        tags = []
        a = 1
        while True:
            try:
                tags.append(msg_tree.xpath('//*[@id="modeldeals"]/div[2]/div/a[{}]'.format(a))[0].text)
            except:
                break
            else:
                a += 1
        msg_dic[name] = {'price': price, 'tags': tags}

    df = pd.DataFrame(msg_dic).transpose()
    df.to_csv('test.csv', mode='a+', encoding='ANSI', header=False)#"utf-8"乱码改了"ANSI"


# print(df)
schedule.every(10).seconds.do(get_msg)#改了等待时间测试用
while True:
    schedule.run_pending()
    time.sleep(1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 06:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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