帮同学爬本地的一个新闻网站,需要获取标题、内容,发布日期和点击量
点击量是通过 js 生成的,
<script src="/count/index?id=2838670&siteid=199"></script>
次
全地址
http://www.trs.gov.cn/count/index?id=2838670&siteid=199
通过连接地址,可以取到内容
document.write("195")
使用如下脚本也可以取到
pubdate, count_id = post.scan(/t(\d{8}_\d+)\./).first.first.split('_')
count_link = "http://www.xxx.cn/count/index?id=#{count_id}&siteid=#{site_id}"
begin
html = Nokogiri::HTML(open(count_link, 'User-Agent' => 'ruby'))
hits = html.text.scan(/\d+/).first
rescue => e
puts "#{count_link}, #{e.message}"
hits = 0
end
但一旦使用多线程访问 count_link 就会返回 403 错误,减少线程量,添加 sleep 可以降低出现 403 的几率, 一旦出现 403 使用浏览器访问也看不到点击量(之前使用 phantomjs 也出现过抓不到点击量的情况),我让外地的朋友帮我试了也看不到,看来并不是封了我的 IP, 这个 403 错误,会持续一段时间,时间到了以后,又可以正常的访问了
本来是爬数据,当然希望越快越好,但是一快就报 403,心碎,求破 先谢谢大家了。