python ,爬虫问题。
import requestsfrom 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
这种忙一般少有人帮,帮的话不亚于自己爬一遍,所以有时候还真得靠自己。
说下你想爬什么,想得到什么样的 ...
其实疑惑的是为啥就是都已经设置了随机UA,和随机IP,包括请求时间也不是很长,但是还报错
也不是想要那些数据,只是在练手过程中碰到这个问题被困扰了好几天。 别自己手写了,用 scrapy 吧。也别用正则了,再差也用过 bs4 啊,或者 XPATH。连接被中断的问题,建议维护自己的代{过}{滤}理池,控制爬取速度,伪装浏览器等。另外提醒一下现在网络爬虫国家开始重视了,前不久抓了好多人! 可能是有的IP不能用,加一个异常处理 try: except : 试试?
感觉你的ip可能无效,再有就是这种问题不是应该发悬赏嘛 这些天玩一mud手游,有个门派拜师的前置技能有个捡钥匙的需求好折磨人,好些人在抢,就在想能不能通过爬虫抓取关键词执行对应操作,可是又不懂这个不晓得怎么搞,现学估计是来不及了 建议看下请求头,你虽然设置了随机ua和ip,但是一些网站对headers这块也进行了参数检测,不是光有ua和ip就行的,另外还有cookie检测,也是同样的道理,爬的时候要尽量模拟真实的浏览器发送请求,你需要抓包看看浏览器发送了那些参数和内容 时空之外 发表于 2019-10-27 17:52
感觉你的ip可能无效,再有就是这种问题不是应该发悬赏嘛
IP我单独测过了,有效才放上去的。
很少发帖,不太清楚这个,受教了{:1_918:} 运行了你的程序,无报错。(我把你UA随机给删了,用的固定的该请求头上的chrome-UA)
页:
[1]