我正在使用jsoup使用带有java的webscrappers,我遇到了其中一个问题,因为当剪贴板在服务器上运行时,网站上的数据没有被提取,但它确实可以在本地PC上运行。
我尝试使用代理来检查服务器的域是否被禁止从我正在废弃的网站上但这不是问题。
对我来说更令人困惑的是,网页扫描程序从网站中提取数据而不是特定类型的数据(例如,我正在废弃一个可以预订酒店的网站,我可以从用户那里提取评论,他们给那家酒店等的加权,但不是那天酒店的价格)
我已经检查过了:
任何曾经做过webscrappers工作的人都知道可能出现什么问题?
答案 0 :(得分:0)
很可能是酒店的价格或您无法抓取的内容由JavaScript生成。
Jsoup 不支持JavaScript,它只会让您获得从服务器收到的普通html ,然后才能被JavaScript操纵。
验证这一点的最佳方法是简单地explain
select qm1.title
from questions_mysql qm1
join questions_mysql qm2
on qm2.qid<qm1.qid
where qm1.qid>3333 and qm1.status='O';
+----+-------------+-------+-------+-----------------+---------+---------+------+-------+------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-----------------+---------+---------+------+-------+------------------------------------------------+
| 1 | SIMPLE | qm1 | range | PRIMARY,cactus1 | PRIMARY | 4 | NULL | 5441 | Using where |
| 1 | SIMPLE | qm2 | ALL | PRIMARY,cactus1 | NULL | NULL | NULL | 10882 | Range checked for each record (index map: 0x3) |
+----+-------------+-------+-------+-----------------+---------+---------+------+-------+------------------------------------------------+
explain
select b.title from
( select qid,title from questions_mysql where qid>3333 and status='O'
) b
join questions_mysql qm2
on qm2.qid<b.qid;
+----+-------------+-----------------+-------+-----------------+---------+---------+------+-------+----------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------------+-------+-----------------+---------+---------+------+-------+----------------------------------------------------+
| 1 | PRIMARY | qm2 | index | PRIMARY,cactus1 | cactus1 | 10 | NULL | 10882 | Using index |
| 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 5441 | Using where; Using join buffer (Block Nested Loop) |
| 2 | DERIVED | questions_mysql | range | PRIMARY,cactus1 | PRIMARY | 4 | NULL | 5441 | Using where |
+----+-------------+-----------------+-------+-----------------+---------+---------+------+-------+----------------------------------------------------+
使用Jsoup收到的html并检查内容。像这样:
print