吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7229|回复: 9
收起左侧

[求助] python ,爬虫问题。

[复制链接]
standyy 发表于 2019-10-27 16:35
import requests
from lxml import etree
import time
import re
import random
from fake_useragent import UserAgent
BASET = 'https://www.ygdy8.net'
pro = ['67.205.136.66:8080', '89.187.181.123:3128', '167.99.232.31:8080','89.187.181.123:3128']
#proxy=random.choice(proxy_list)
ua = UserAgent()
headers = {'User-Agent':ua.random}
#headers = random.choice(headerss)
def get_one_url(url):
    response = requests.get(url, headers=headers,proxies={'http': random.choice(pro)})
    #response.encoding = 'GBK'
    text = response.content.decode('GB18030', 'ignore')
    #text = response.text
    html = etree.HTML(text)
    detail_urls = html.xpath("//table[@class='tbspan']//a/@href")
    detail_urls = map(lambda url:BASET+url,detail_urls)
    return detail_urls

def parse_detail_page(url):
    #movis =[]
    response = requests.get(url,headers=headers,proxies={'http': random.choice(pro)})
    text = response.content.decode('GB18030','ignore')
    #html = etree.HTML(text)
    with open('movis.txt', 'a', encoding='utf-8') as file:
        #titles = html.xpath("//div[@class='title_all']//font[@color='#07519a']/text()")
        titles = re.findall(r'<div class="title_all"><h1><font color=#07519a>(.*?)</font></h1></div>',text,re.S)
        #获取标题
        for title in titles:
            #打印标题和存储标题
            print(title)
            file.write(title)
            file.write('\n' * 1)
        links = re.findall('<td.*?<a href="(.*?)">.*?</a></td>',text,re.S)
        #links = html.xpath('//div[@id="Zoom"]/span/table/tbody/tr/td/a//@href')
        for link in links:
            #获取此链接
        #print(link)
            print(link)
            file.write(link)
            file.write('=' * 100 + '\n')
        time.sleep(6)

def mrin():
    na_url = 'https://www.ygdy8.net/html/gndy/dyzz/list_23_{}.html'
    for x in range(1,101):
        #来获取页面上
        url = na_url.format(x)
        detail_urls = get_one_url(url)
        for detail_url in detail_urls:
            #用来获取页中所有的详情页请求链接。
            movie = parse_detail_page(detail_url)
mrin()

先贴出代码,我设置了随机UA ,和随机IP。但是还是报错连接被中断。试了很多次就没有完整的爬完的,头很大现在,求大佬帮我看下是啥问题。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zqc8 发表于 2019-10-27 17:07
这种忙一般少有人帮,帮的话不亚于自己爬一遍,所以有时候还真得靠自己。
说下你想爬什么,想得到什么样的结果,有空我可以帮你去看看,
 楼主| standyy 发表于 2019-10-27 17:11
zqc8 发表于 2019-10-27 17:07
这种忙一般少有人帮,帮的话不亚于自己爬一遍,所以有时候还真得靠自己。
说下你想爬什么,想得到什么样的 ...

其实疑惑的是为啥就是都已经设置了随机UA,和随机IP,包括请求时间也不是很长,但是还报错
也不是想要那些数据,只是在练手过程中碰到这个问题被困扰了好几天。
rexyan 发表于 2019-10-27 17:30
别自己手写了,用 scrapy 吧。也别用正则了,再差也用过 bs4 啊,或者 XPATH。连接被中断的问题,建议维护自己的代{过}{滤}理池,控制爬取速度,伪装浏览器等。另外提醒一下现在网络爬虫国家开始重视了,前不久抓了好多人!
zyu 发表于 2019-10-27 17:43
可能是有的IP不能用,加一个异常处理 try: except : 试试?   
时空之外 发表于 2019-10-27 17:52
感觉你的ip可能无效,再有就是这种问题不是应该发悬赏嘛
wdz2018 发表于 2019-10-27 18:39
这些天玩一mud手游,有个门派拜师的前置技能有个捡钥匙的需求好折磨人,好些人在抢,就在想能不能通过爬虫抓取关键词执行对应操作,可是又不懂这个不晓得怎么搞,现学估计是来不及了
M-Riley 发表于 2019-10-27 19:28
建议看下请求头,你虽然设置了随机ua和ip,但是一些网站对headers这块也进行了参数检测,不是光有ua和ip就行的,另外还有cookie检测,也是同样的道理,爬的时候要尽量模拟真实的浏览器发送请求,你需要抓包看看浏览器发送了那些参数和内容
 楼主| standyy 发表于 2019-10-27 20:39
时空之外 发表于 2019-10-27 17:52
感觉你的ip可能无效,再有就是这种问题不是应该发悬赏嘛

IP我单独测过了,有效才放上去的。
很少发帖,不太清楚这个,受教了
子子木木木子子 发表于 2019-10-29 10:39
运行了你的程序,无报错。(我把你UA随机给删了,用的固定的该请求头上的chrome-UA)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 00:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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